有没有办法做复杂的copy
来自map<A,B>
计算,使用 C++ 的复制函数?
看起来很复杂,因为 map 不止一项,而且迭代器本身并不指向读取数据。
我的意思是类似于我们对 vector 所做的事情:
copy (vector.begin(), vector.end(), ostream<int>(cout," "));
最佳答案
map 的 value_type 是 std::pair<key_type, assoc_type>
.要进行复制,您需要提供 operator<<
那需要那种类型。例如,对于 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
里面编译器可以找到它。
关于C++ <algorithm> : copy map<A, B> 计算?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11855770/