3

マルチマップを機能させるのに問題があります。コードを表示して問題を説明します。

    #include <string>
    ...

    multimap<std::string, pinDelayElement> arcList
    pinDelayElement pde;
    std:string mystring = "test"
    arcList[mystring] = pde;

ただし、コンパイルすると、最後の行で次のエラーが発生します。

エラーC2676:バイナリ'[':'std :: multimap <_Kty、_Ty>'は、この演算子、または[_Kty = std :: string、_Ty = Psdfwr::pinDelayElementで事前定義された演算子に受け入れられる型への変換を定義していません]

誰かが私が間違っているかもしれないことを知っていますか?

4

2 に答える 2

6

これは、std::multimapに。がないためoperator[]です。挿入方法を使用してみてください。

于 2012-06-21T20:49:36.200 に答える
4

以下のコードは、それを正しく行う方法の例です。

  1. 他の人が指摘しているように、std :: multimapには、operator[]要素を抽出する意味がないため、インデックスがありません。インデックスごとに複数の値があります。

  2. あなたはする必要がありinsertますmultimap<...>::value_type

#include <string>
#include <map>

void test()
{
    typedef std::multimap<std::string, int> Map;
    Map map;
    map.insert(Map::value_type("test", 1));
}
于 2012-06-21T20:53:15.007 に答える