copy
有没有办法从 a到 cout做复杂的事情map<A,B>
,使用 C++ 的复制功能?
看起来很复杂,因为 map 有不止一项,而且迭代器本身并不指向读取数据。
我的意思是我们对向量所做的事情:
copy (vector.begin(), vector.end(), ostream<int>(cout," "));
地图的 value_type 是std::pair<key_type, assoc_type>
. 要进行复制,您需要提供一个operator<<
采用该类型的。例如,对于 a map<string, int>
,它将是:
std::ostream *operator<<(std::ostream &os, std::pair<std::string, int> const &v) {
return std::cout << v.first << ":\t" << v.second;
}
你通常必须把它放在里面namespace std
让编译器找到它。