Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
当包含指针时,可以将push_back vector元素放在一行中:
push_back
vector
vector<SomeClass*> v; v.push_back(new SomeClass(initVar1)); v.push_back(new SomeClass(initVar2)); v.push_back(new SomeClass(initVar3));
push_back有没有办法用非指针变量(必须是其他变量的副本)来做这样的单行?
如果他们有公共复制构造函数,当然:
v.push_back(SomeClass(initVar));
请注意,push_back无论如何都会创建一个副本,所以对我来说似乎毫无意义。在 C++11 中,如果可能,对象将被移动构造。
此外,不要让自己头疼,并std::unique_ptr<T>为矢量元素使用原始指针而不是原始指针。以这种方式使用原始指针会完全禁用向量为您管理内存的能力,从而破坏了使用它的一半目的。
std::unique_ptr<T>