基本上我有以下课程代码:
class Foo {
public:
Foo() { instructions };
Foo(int a) { instructions };
Foo(int a, int b) { instructions };
}
这个用作std :: vector对象的基本类型但是,如果我使用默认的Foo分配器分配并初始化一个新的向量,则向量将填充x个不同的Foo对象。那么,以下一行:
std::vector<Foo> bar = std::vector<Foo>(1337);
生成1337个不同的Foo对象。
当我使用第二个或第三个构造函数时会发生奇怪的行为。的确,在这种情况下:
std::vector<Foo> bar = std::vector<Foo>(1337, Foo(1, 2));
bar
填充了相同的元素。最后,bar
只是一个包含1337个相同对象的向量。
我错过了什么吗?