【发布时间】:2012-10-17 19:15:16
【问题描述】:
我想看看是否可以在一行中初始化一个对象向量,所以我编写了以下示例:
vector<Bar*> bar(5, new Bar());
bar[3]->hit++;
for (int i = 0; i < 5; i++)
cout << bar[i]->hit << endl;
但是当我运行它时,我得到:
1
1
1
1
1
似乎对所有指针都使用了相同的 new Bar()。是否可以将对象指针的向量初始化为指向不同的对象?
【问题讨论】:
-
你可以,使用一些
std::generate魔法,但问题是,你为什么要这样做?