检查它是否有太大的影响。机会是,它不会太多,而且可能比大多数人自己的解决方案要少。不幸的是,你能做的不多。您需要定义责任,即谁负责拥有您的资源。在我看来,这是C++的一个基本问题,可能是人们移动到其他语言的最大原因之一。你是否已经对智能指针进行了剖析,或者

检查它是否有太大的影响。机会是,它不会太多,而且可能比大多数人自己的解决方案要少。不幸的是,你能做的不多。您需要定义责任,即谁负责拥有您的资源。在我看来,这是C++的一个基本问题,可能是人们移动到其他语言的最大原因之一。你是否已经对智能指针进行了剖析,或者,c++,linux,C++,Linux,检查它是否有太大的影响。机会是,它不会太多,而且可能比大多数人自己的解决方案要少。不幸的是,你能做的不多。您需要定义责任,即谁负责拥有您的资源。在我看来,这是C++的一个基本问题,可能是人们移动到其他语言的最大原因之一。你是否已经对智能指针进行了剖析,或者仅仅是你的猜测?试试智能指针。配置文件,以检查其是否有太大的影响。机会是,它不会太多,而且可能比大多数人自己的解决方案要少。不幸的是,你能做的不多。您需要定义责任,即谁负责拥有您的资源。在我看来,这是C++的一个基本问题,可能是人们移动到其他语


检查它是否有太大的影响。机会是,它不会太多,而且可能比大多数人自己的解决方案要少。不幸的是,你能做的不多。您需要定义责任,即谁负责拥有您的资源。在我看来,这是C++的一个基本问题,可能是人们移动到其他语言的最大原因之一。你是否已经对智能指针进行了剖析,或者仅仅是你的猜测?试试智能指针。配置文件,以检查其是否有太大的影响。机会是,它不会太多,而且可能比大多数人自己的解决方案要少。不幸的是,你能做的不多。您需要定义责任,即谁负责拥有您的资源。在我看来,这是C++的一个基本问题,可能是人们移动到其他语言的最大原因之一。你是否已经对智能指针进行了剖析,或者仅仅是猜测?一点关于代码> SyddYpPTR<代码>:最好使用<代码> MaxySuffux/Cuth>构建它,它更有效。您可以禁用shared_ptr的线程安全性,以避免支付互斥锁的费用。关于
shared_ptr
的一点:最好使用
使_共享
来构建它,它的效率更高。此外,您可以禁用shared_ptr的线程安全以避免支付互斥锁的费用。打包也可以通过make_shared函数实现。@ronag:如果我没记错的话,
make_shared
仍然执行2次分配,因为
计数器
共享ptr
池和
弱ptr
池之间共享,并且独立生活。
make_shared
packs是删除程序和实际分配的对象。不过我可能弄错了,在boost源代码中跋涉肯定不是我过去最喜欢的。打包也可以通过make_shared函数实现。@ronag:如果我没记错的话,
make_shared
仍然进行2次分配,因为
计数器
共享ptr
池和
弱ptr
池之间共享,并且独立生活。
make_shared
packs是删除程序和实际分配的对象。虽然我可能弄错了,但在boost source中跋涉肯定不是我过去最喜欢的时间。
std::vector<smart_ptr<T> > objects;

if(!objects.empty()) {
    smart_ptr<T> *objects_raw=&objects[0];
    for(size_t n=objects.size(),i=0;i<n;++i) {
        T *object=objects_raw[i].get_ptr();

        // do stuff
    }
}