我想知道在下面的例子中使用指針矢量的優點是什麼。在內存管理方面,這三個向量之間是否有區別?哪一個最有效?在這種情況下,我應該使用指針向量嗎?
class foo{
public:
foo(int a);
private:
int x;
};
foo::foo(int a){
}
int main() {
std::vector< std::shared_ptr<foo> > vec =
{std::make_shared<foo>(2), std::make_shared<foo>(2)};
std::vector<foo*> vec2 = {new foo(2), new foo(2)};
foo o1(2), o2(2);
std::vector<foo> vec3 = {o1, o2};
return 0;
}
爲什麼不'std :: vector vec3 = {foo {2},foo {2}};'?保持一致。 –
2014-12-06 20:35:40