C++;:std::vector<;I>;遮罩(n_col,-1);意思是 我正在翻译一段C++代码(这是我看了很久了!!)我不确定这意味着什么: std::vector<I> mask(n_col, -1); std::向量掩码(n列,-1);

C++;:std::vector<;I>;遮罩(n_col,-1);意思是 我正在翻译一段C++代码(这是我看了很久了!!)我不确定这意味着什么: std::vector<I> mask(n_col, -1); std::向量掩码(n列,-1);,c++,stl,C++,Stl,它是否创建了一个长度为n\u col的向量,其中填充了-1?它创建了一个std::vector类型的I长度为n\u col的项目,所有项目都是从-1初始化的,您可以查看 是的,它创建了一个长度为n\u col的向量,其中n\u col重复I(-1)代码使用构造函数(2),并为您提供一个n\u col元素的向量,所有元素均由值-1构造尽管构造函数有三个参数,但第三个-分配器-是可选的。它将从-1构造一个I,其他的都将从该I复制 如果您创建一个具有int隐式构造函数的类型,并在调用该构造函数时打印,

它是否创建了一个长度为
n\u col
的向量,其中填充了
-1

它创建了一个
std::vector
类型的
I
长度为
n\u col
的项目,所有项目都是从
-1
初始化的,您可以查看


是的,它创建了一个长度为
n\u col
的向量,其中
n\u col
重复
I(-1)
代码使用构造函数(2),并为您提供一个
n\u col
元素的
向量,所有元素均由值
-1
构造
尽管构造函数有三个参数,但第三个-分配器-是可选的。

它将从-1构造一个I,其他的都将从该I复制

如果您创建一个具有int隐式构造函数的类型,并在调用该构造函数时打印,然后以这种方式创建一个大小为10的向量,您将看到打印只发生一次,而不是10次

e、 g

#包括
#包括
结构Foo
{
int m_值;
Foo():m_值(0){}
Foo(inti):m_值(i)
{

std::cout just google for syntax of vector declaration类型
I
是标准stl类型吗?(不能google单个字符…)@tdc:No,
I
不是标准类型;它将在代码的某个地方定义。@MikeSeymour谢谢(顺便说一句,不是我的代码!)@tdc:heh-它只是在正确的时间,在正确的位置。学究式的说,元素是从
-1
构造/初始化的,对于项目的实际值没有什么可说的,它们取决于实际类型
I
@rubenvb:这就是我说的“所有项目都初始化为
-1
”.或者你说的是“to”而不是“from”的用法“桑德代克是的,我确实说过了<代码> Poangnic < /Cord>。我认为每个有点熟悉C++的人都知道你的意思,但初学者可能会感到困惑。@ RuuNVB:相应地修改了答案。谢谢你指出。不完全是:用<代码> NoCelo>代码>重复<代码> i(-1)
。事实上,该声明假定向量值类型
I
可以用整数初始化。
#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 );
}