1.
这段代码将s中以空格分隔的数据提取出来,以T类型存储到vector中。
begin返回x.begin,同理有end
#include <bits/stdc++.h>
bit/stdc++.h是gcc中的一个神奇的库,它包含了几乎所有的C++标准库。
2.
template<class T>
vector<T> splitstr(const string &s)
{
istringstream in(s);
vector<T> out;
copy(istream_iterator<T>(in), istream_iterator<T>(), back_inserter(out));
return out;
}
这段代码将s中以空格分隔的数据提取出来,以T类型存储到vector中。
istringstream 是以string作为buf,ostringstream是输出。利用它们读入输出可以实现字符串到特定类型的转换。
istream_iterator则是生成一个迭代器的函数,实例没有参数的话就生成一个end-of-stream。
back_inserter生成一个迭代器,每次向容器的末尾添加,容器要有push_back函数。一般用在copy函数中。
3.
#define FE(i, x) for (auto i = begin(x); i != end(x); ++i)
begin返回x.begin,同理有end