0

C++のコピー機能を使用してcopy、aからcoutまで複雑にする方法はありますか?map<A,B>

マップには複数のアイテムがあり、イテレータ自体はデータの読み取りを指していないため、複雑に見えます。

ベクトルで行うことのようなことを意味します。

copy (vector.begin(), vector.end(), ostream<int>(cout," "));

4

1 に答える 1

2

マップの 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ただし、通常、コンパイラがそれを見つけるために、それを内部に配置する必要があります。

于 2012-08-08T00:04:34.390 に答える