C++11 如何用共享的ptr替换c指针?

C++11 如何用共享的ptr替换c指针?,c++11,C++11,我是C++11新手,所以请友好一点 你能给我举一个简单的例子吗,一个共享的指针是如何取代标准指针的?如果在这种情况下没有意义,我也很感谢你的解释 e、 你能转换这个代码吗 std::vector <CVariant*>liste; liste.push_back( new CVariant( (unsigned int) 24, Parameter1", TYPE_UINT) ); std::cout << liste.at(0)->get<int>()

我是C++11新手,所以请友好一点

你能给我举一个简单的例子吗,一个共享的指针是如何取代标准指针的?如果在这种情况下没有意义,我也很感谢你的解释

e、 你能转换这个代码吗

std::vector <CVariant*>liste;
liste.push_back( new CVariant( (unsigned int) 24, Parameter1", TYPE_UINT) );
std::cout << liste.at(0)->get<int>() <<"\n";
delete liste.at(0);
std::向量列表;
liste.push_back(新变量((unsigned int)24,参数1“,TYPE_UINT));
std::cout get()列表;

如果我没有错,你应该这样做:

std::vector<std::shared_ptr<CVariant>> liste;

liste.push_back( std::make_shared<CVariant> (arguments...));
std::向量列表;
liste.push_back(std::make_shared(参数…);
检查这个


希望这有帮助。

如果我没有错,你应该这样做:

std::vector<std::shared_ptr<CVariant>> liste;

liste.push_back( std::make_shared<CVariant> (arguments...));
std::向量列表;
liste.push_back(std::make_shared(参数…);
检查这个


希望这有帮助。

如果您有这样的向量列表

std::vector < std::shared_ptr<CVariant> >liste;
Ant将指针添加到列表,如下所示:

auto pointer = std::make_shared<CVariant>( (unsigned int) 24, Parameter1", TYPE_UINT );
liste.push_back( pointer );

如果你有这样一个向量列表

std::vector < std::shared_ptr<CVariant> >liste;
Ant将指针添加到列表,如下所示:

auto pointer = std::make_shared<CVariant>( (unsigned int) 24, Parameter1", TYPE_UINT );
liste.push_back( pointer );

是的,它可以工作。你也可以直接使用shared_ptr的构造函数:
liste.push_back(std::shared_ptr(new cvvariant(arguments…)
看看:是的,它可以工作。你也可以直接使用shared_ptr的构造函数:
liste.push_back(std::shared_ptr(new cvvariant(arguments…)
看看: