【发布时间】:2020-01-17 22:22:17
【问题描述】:
我得到的错误是“预期为 ;”。
const int SIZE = 9;
vector<string>possiblePalindromes(SIZE) = // error is shown here
{ "A man a plan a canal Panama",
"The rain in Spain",
"No lemon, no melon",
"radar",
"CS1D",
"Was it a cat I saw?",
"Racecar",
"Saddleback",
"dad" };
我的问题是,这不是一个有效的声明吗?如果我删除 (SIZE),错误就会消失,但我的目的是声明具有特定大小和一组预定义值的向量。这样当我决定遍历向量时,就像
for (int i = 0; i < SIZE; ++i)
我可以直接引用向量的大小,而不是一些常数“9”。
我对这不起作用的暗示是当我这样做时
vector<string>possiblePalindromes(SIZE)
我用 9 个字符串默认值声明大小为 9 的向量。这意味着 {} 中包含的所有内容根本不会被读入向量。
【问题讨论】:
-
为什么不直接消除
SIZE并使用基于范围的 for、迭代器或possiblePalindromes.size()进行迭代? -
.size() 函数会是更好的方法。谢谢。
标签: c++ string vector constructor initializer-list