我正在翻译一些C ++代码(自从我查看任何内容以来已经很长时间了!)。我不确定这意味着什么:
std::vector<I> mask(n_col, -1);
是否正在创建一个长度为n_col
的向量,其值为-1
?
答案 0 :(得分:5)
它会创建std::vector
个I
长度为n_col
的项目,其中所有项目都是从-1
初始化的。
答案 1 :(得分:1)
你可以看here。
是的,它会创建一个长度为n_col
且n_col
重复I(-1)
的向量。
答案 2 :(得分:1)
代码正在使用here中的构造函数(2),并为您提供vector<I>
个n_col
元素,这些元素都是根据值-1
构建的。
答案 3 :(得分:1)
The reference documentation says yes, you're correct。
虽然构造函数有三个参数,但第三个 - 分配器 - 是可选的。
答案 4 :(得分:0)
它将从-1构造一个I,其他的都将从那个中复制。
如果您创建一个具有int的隐式构造函数的类型,并在调用该构造函数时进行打印,那么创建一个大小为10的向量,您将看到您的打印只发生一次,而不是10次。
e.g。
#include <vector>
#include <iostream>
struct Foo
{
int m_value;
Foo() : m_value( 0 ) {}
Foo( int i ) : m_value( i )
{
std::cout << "Constructor from int\n";
}
};
int main()
{
std::vector<Foo> foovec( 10, -1 );
}