我可以创建一个数组并像这样初始化它:
int a[] = {10, 20, 30};
Run Code Online (Sandbox Code Playgroud)
如何创建std::vector和初始化它同样优雅?
我知道的最好方法是:
std::vector<int> ints;
ints.push_back(10);
ints.push_back(20);
ints.push_back(30);
Run Code Online (Sandbox Code Playgroud)
有没有更好的办法?
我想像数组一样初始化一个向量.
例
int vv[2] = {12, 43};
Run Code Online (Sandbox Code Playgroud)
但是当我这样做的时候,
vector<int> v(2) = {34, 23};
Run Code Online (Sandbox Code Playgroud)
要么
vector<int> v(2);
v = {0, 9};
Run Code Online (Sandbox Code Playgroud)
它给出了一个错误:
在'{'标记之前预期的primary-expression
和
错误:预期','或';' 在'='之前
分别.
是否有一种优雅的方法来创建和初始化const std::vector<const T>类似于const T a[] = { ... }固定(和小)数量的值?
我需要频繁调用一个期望a的函数vector<T>,但这些值在我的情况下永远不会改变.
原则上我想到了类似的东西
namespace {
const std::vector<const T> v(??);
}
Run Code Online (Sandbox Code Playgroud)
因为v不会在这个编译单元之外使用.