C++:std::vector<I> mask(n_col, -1); 是什么意思?

C++: What does std::vector<I> mask(n_col, -1); mean?

本文关键字:col 是什么 意思 mask lt vector std gt C++      更新时间:2023-10-16

我正在翻译一些C++代码(我已经很久没有看过任何代码了!!我不确定这意味着什么:

std::vector<I> mask(n_col, -1);

它是否创建了一个长度向量n_col填充值 -1

它创建长度为 n_colI 类型的项的std::vector,其中所有项都从 -1 初始化。

代码从这里使用构造函数 (2(,并为您提供了n_col元素的vector<I>,所有元素都是从值 -1 构造的。

参考文档说是的,你是对的。
尽管构造函数接受三个参数,但第三个参数(分配器(是可选的。

你可以看这里。

是的,它创建了一个长度n_col的向量,n_col重复I(-1).

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

如果创建一个类型,该

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

例如

#include <vector>
#include <iostream>
struct Foo
{
  int m_value;
   Foo() : m_value( 0 ) {}
   Foo( int i ) : m_value( i )
   {
        std::cout << "Constructor from intn";
   }
};
int main()
{
   std::vector<Foo> foovec( 10, -1 );
}