既然您用 标记了问题foreach
,这里有一种使用标准for_each
算法和 C++11 lambdas 的方法:
#include <string>
#include <sstream>
#include <iostream>
#include <algorithm> // for for_each
#include <vector> // vector, obviously
#include <iterator> // istream_iterator
using namespace std;
int main()
{
string line;
vector<string> vec;
getline(cin, line);
istringstream parse(line);
for_each(
istream_iterator<string>(parse),
istream_iterator<string>(),
// third argument to for_each is a lambda function
[](const string& str) {
// do whatever you want with/to the string
vec.push_back(str); // push it to the vector
}
);
}
Avector
正是您所要求的 - 一个动态可调整大小的数组,您应该几乎总是更喜欢 C 风格的数组。它的大小不需要在编译时知道。