草庐IT

C++智能指针之unique_ptr

全部标签

c++ - 取消引用指针(并返回它)的问题

这里我有一个函数,它创建一个字符串,将它分配给一个字符串指针,然后返回它。我尝试返回一个常规字符串,但效果很好。但是当我整合指针并取消引用它们时,我的程序崩溃了。当我尝试调试它时,这是我收到的消息:Assignment2.exe中0x00024cbf处的未处理异常:0xC0000005:读取位置0xcccccce4的访问冲突。这是我的代码:string*Recipe::getCookingTime()//@intput:none//@output:cookingtimeasastring{stringtemp;stringdisplayHrs;stringdisplayMins;if(

生成式AI智能体之间的秘密串通:一场隐藏的危机,你准备好了吗?

大型语言模型(LLM)的能力增强,开辟了一组通信生成AI智能体解决联合任务的应用程序。这对未经授权的信息共享或其他不必要的智能体协调形式带来了隐私和安全挑战。现代隐写技术可能会使这种动态难以检测。通过借鉴人工智能和安全文献中的相关概念,全面正式化了生成人工智能代理系统中的秘密共谋问题。一些AI专家研究了隐写术的使用动机,并提出了各种缓解措施。生成式AI智能体是否会在公共通道中建立隐写术的子通道,从而进行秘密串通?这种串通可能会对人类的利益和价值造成威胁,也可能会导致不可预测的后果。那么我们如何检测、防止和缓解这种风险呢?近日发表的一篇由来自加州大学伯克利分校、牛津大学、瑞士科学技术、谷歌Dee

人工智能会统治世界吗?

在技术飞速进步的时代,人工智能(AI)是否最终会统治世界这一迫在眉睫的问题是值得商榷的。曾经只是科幻小说中虚构的东西现在已经成为专家们合理的担忧,引发了关于人工智能进步的潜在影响的激烈辩论。虽然直接从《终结者》电影中得出的反乌托邦未来的概念听起来有些夸张,但必须深入挖掘与人工智能不断扩展的能力相关的分析见解和潜在影响。分析问题争论的核心在于对人工智能超越人类智能和自主性的恐惧。随着机器越来越擅长决策,人们对它们优先考虑可能与人类价值观不符的目标的能力产生了合理的担忧。这种担忧尤其重要,因为人工智能在我们生活的各个方面发挥着越来越重要的作用。这类似于科幻电影中描绘的机器人有一天会占领世界的恐惧。

解决影子人工智能潜在威胁的四个技巧

与影子人工智能相关的挑战在好转之前可能会变得更糟,因为人工智能工具的实施速度比大多数组织能够保护它们的速度更快。研究表明,近一半(49%)的人使用过生成式人工智能,其中超过三分之一的人每天都在使用它。不可否认,生成式人工智能有许多好处和用例,但在IT治理之外的组织内非法或未经批准地使用这些工具(称为影子人工智能)可能会导致重大风险。在过去的一年里,我们看到亚马逊等科技巨头抓住了利用ChatGPT和其他人工智能工具来获取业务收益的机会。但其他企业已经禁止其使用:去年,三星在数据意外泄露后禁止员工使用ChatGPT和GoogleBard等工具。由于担心敏感信息共享,高盛和花旗集团等更多银行也限制人

四个优秀AI Agent开源项目,谈一谈大模型、人工智能代理

什么是AIAgent?现在我们与大模型的互动,一般的过程是先输入一个提示词,之后,大模型根据输入内容进行计算并响应。每次想要得到一个新的输出,我们就必须再提供一个提示词。这个过程有点麻烦,因为总是要有人来驱动。AIAgent(人工智能代理)则以不同的方式工作。他们被设计成可独立思考和行动的智能体。我们唯一需要提供的就是一个目标,可以是研究竞争对手分析、写个网站程序或进行一次旅游。AIAgent会生成一个任务列表,然后开始工作,依靠环境的反馈和自己的内心独白。就好像它们可以提示自己似的,在不断发展中适应变化,以最好的方式实现我们制定的目标。看起来这个过程和自动化流程有点像,但其实有区别。与自动化

c++ - 智能指针作为多态性的类成员

我是智能指针的新手,如果有人可以提示我作为类成员处理智能指针的方式是否正确,我将不胜感激。更准确地说,我想要实现的解决方案是在类多态性的上下文中,理想情况下应该是异常安全的。给定一个containerofheterogeneuousobjects(std::vector>my_vector),通常添加元素的方式是:my_vector.push_back(shared_ptr(newCChild(1))),以便稍后可以通过以下方式调用特定派生类的成员函数:my_vector[0]->doSomething().我想要实现的是将堆栈对象添加到vector并且仍然能够进行多态性。直觉上……喜

c++ - 为什么在单例实现中清除 boost::scoped_ptr

我使用boost::scoped_ptr实现了一个简单的单例:templateclassSingleton:publicboost::noncopyable{public:staticT&instance(){boost::call_once(init,flag);return*t;}staticvoidinit(){t.reset(newT());}private:staticboost::scoped_ptrt;staticboost::once_flagflag;};templateboost::scoped_ptrSingleton::t(0);templateboost::o

c++ - 如何制作指针的拷贝

我正在尝试将一个指针数据复制到另一个指针,这样如果我更改一个指针,另一个指针中的值就不会改变。我需要这个,因为我正在编写一个循环,其中有两个结构指针、value和lastValue。在循环的每次迭代中,我将value的内容分配给lastValue,并用新内容填充value。问题是因为两者都是结构指针,所以当我更改value时,lastValue也会更改,这不是我想要的行为。代码应该是这样的(结构是来自OpenCV的IplImages):IplImage*value;Iplimage*lastValue;while(1){lastValue=value;value=cvQueryFram

c++ - Boost Asio - 使用 shared_ptr 处理解析器和套接字

我有一个类能够通过TCP发送消息。这里是简化的界面:classCommandScreenshot:publicCameraCommand{public:CommandScreenshot();~CommandScreenshot();voidDispatch(boost::shared_ptrio_service);private:voidresolve_handler(constboost::system::error_code&err,boost::asio::ip::tcp::resolver::iteratorendpoint_iterator);};如您所见,我有一个函数Di

c++ - 将 unique_ptr 插入 map ,指针被销毁

我有以下(简化的)类(class):classOperator{private:std::map>op;public:templatevoidinsertOperand(std::stringconst&s,To=T()){op.insert(std::pair>(s,std::move(std::unique_ptr(newT(o))));}voidsetOperandsValue(std::stringconst&o,intv){op.find(o)->second->setValue(v);}};插入一个新的Operand没有任何问题。然而,当函数返回时,析构函数被调用,因此ma