C++:std::vector<I> mask(n_col, -1); 是什么意思?
C++: What does std::vector<I> mask(n_col, -1); mean?
我正在翻译一些C++代码(我已经很久没有看过任何代码了!!我不确定这意味着什么:
std::vector<I> mask(n_col, -1);
它是否创建了一个长度向量n_col
填充值 -1
?
它创建长度为 n_col
的 I
类型的项的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 );
}
相关文章:
- 为不同配置设置MSVC_RUNTIME_LIBRARY的正确方法是什么
- C++避免重复声明的语法是什么
- 在C++中,将大的无符号浮点数四舍五入为整数的最佳方法是什么
- 实现无开销push_back的最佳方法是什么
- C++从另一个类访问公共静态向量的正确方法是什么
- "throw expression code" 1e7 >返回 d 是什么?投掷标准::overflow_error( "too big" ) : d;意味 着?
- C++中名称篡改的目的是什么
- 在 c++ 中拥有一组结构的正确方法是什么?
- 这个指针和内存代码打印是什么?我不知道是打印垃圾还是如何打印我需要的值
- 是什么阻止DOMTimerCoordinator::NextID进入无休止的循环
- 派生类销毁的最佳实践是什么
- 这个语法std::class<>{}(arg1, arg2) 在C++中是什么意思?
- 通过JNI传递数据数组的最快方法是什么
- "using namespace std;"在C++的作用是什么?
- 在两台机器之间进行时间戳的最佳c++chrono函数是什么
- 文件系统:复制功能的速度秘诀是什么
- 用常见虚拟函数实现的任意组合来实现派生类的正确方法是什么
- 使用QQuickFramebufferObject时同步数据的最佳方式是什么
- 是什么原因导致它无法编译?它是声明签名还是在函数本身的实现中
- i(row) 和 j(col) 是什么意思?