标准行阅读习惯用法:
#include
#include
#include
#include
std::ifstream infile("thefile.txt");
std::string line;
while (std::getline(infile, line))
{
std::istringstream iss(line);
int n;
std::vector v;
while (iss >> n)
{
v.push_back(n);
}
// do something useful with v
}
这是使用for循环的单行版本。我们需要一个辅助构造(归功于@Luc Danton!),它的作用与以下相反std::move:
namespace std
{
template T & stay(T && t) { return t; }
}
int main()
{
std::vector<:vector>> vv;
for (std::string line;
std::getline(std::cin, line);
vv.push_back(std::vector(std::istream_iterator(std::stay(std::istringstream(line))),
std::istream_iterator())
)
) { }
std::cout << vv << std::endl;
}