我试图只将一定数量的单词推回向量中,但是
while (cin >> words) {
v1.push_back(words);
}
循环没有结束。下一条语句是将所有内容都转换为大写。但它不会退出while循环。不断地要求输入新单词。
我试图只将一定数量的单词推回向量中,但是
while (cin >> words) {
v1.push_back(words);
}
循环没有结束。下一条语句是将所有内容都转换为大写。但它不会退出while循环。不断地要求输入新单词。
不要沉迷于一次做所有事情。你刚才描述的是一个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 循环时使用从零开始的容器,其中循环控制作为索引,如 => myContainer[myInt]
。
一个巧妙的方法是定义一个常量(例如 size_t const MAX_WORDS = 3;
)并检查是否v
有足够的元素:
while ((v1.size() < MAX_WORDS) && (cin >> words))
{
v1.push_back(words);
}