我试图将一定数量的单词推回到矢量中,但是
while (cin >> words) {
v1.push_back(words);
}
循环没有结束。下一个声明是将所有内容转换为大写。但它不会退出while循环。持续不断地要求输入新词。
答案 0 :(得分:1)
不要马上做任何事情。您刚刚描述的是for
循环。只需阅读输入所需的次数,并在每次迭代时push_back()
。当for
循环达到条件时,循环按预期结束。
// Here I create a loop control (myInt), but it could be a variable
// from anywhere else in the code. Often it is helpful to ensure you'll
// always have a non-negative number. This can done with the size_t type.
for(std::size_t myInt = 0; myInt < someCondition; ++myInt)
{
// read the input
// push it back
}
记住C / C ++在使用for循环时使用基于零的容器,循环控件作为索引,如=&gt; myContainer[myInt]
。
答案 1 :(得分:0)
一种巧妙的方法是定义一个常量(例如 size_t const MAX_WORDS = 3;
)并检查v
是否还有足够的元素:
while ((v1.size() < MAX_WORDS) && (cin >> words))
{
v1.push_back(words);
}