C++のコピー機能を使用してcopy
、aからcoutまで複雑にする方法はありますか?map<A,B>
マップには複数のアイテムがあり、イテレータ自体はデータの読み取りを指していないため、複雑に見えます。
ベクトルで行うことのようなことを意味します。
copy (vector.begin(), vector.end(), ostream<int>(cout," "));
マップの 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
ただし、通常、コンパイラがそれを見つけるために、それを内部に配置する必要があります。