我正在开发一个用于构建记录的类(具有固定数量的字段)。我的公共方法允许用户按索引插入单个值。用户不需要填写所有字段 - 所以我想将表示记录的向量预先分配到确切的大小,每个字段都初始化为空字符串。
有没有办法比使用推回循环更容易做到这一点?
答案 0 :(得分:10)
这样的事情:
std::vector<std::string> v(N);
其中N
是字符串数。这会创建一个带有N
空字符串的向量。
答案 1 :(得分:2)
你只需要选择一个vector类的标准构造函数,即在输入中接收元素数量的元素(使用默认构造函数生成,它将是std::string
的空字符串)你想从头开始放入你的矢量。
int N = 10;
std::vector<std::string> myStrings(N);
您还可以将所有字符串初始化为与空字符串不同的值,例如:
int N = 10;
std::vector<std::string> myStrings(N,std::string("UNINITIALIZED") );
文档: http://www.cplusplus.com/reference/vector/vector/vector/
您可能也有兴趣阅读此内容:Initializing an object to all zeroes
答案 2 :(得分:0)
std::vector<std::string> v(N);
会做的。