unordered_map
を私のアプリケーションに追加して、値を<string,object>
のペアとして保存します。関数内でマップする要素を追加し、このオブジェクトへのポインタを返し、いくつかのロジックを行い、後でこの値を取得したかったのです。[]とinsert()でstd :: unordered_mapへの挿入の違い
残念ながら、私の参照が何らかの接続を失っているように見えるため、残念ながら私は計画どおりにできません。これは、挿入は、現在行われている方法です。
std::unordered_map<std::string, EdgeS> edges;
// Some extra stuff
EdgeS* Node::insertEdge(Node* to)
{
EdgeS edge = edges[to->name];
if(!edge.to)
edge.to = to;
edge.frequency++;
edge.packets_number++;
return &edge;
}
あなたは私がoperator[]を使用しています見ることができるように、しかし、後に、私はこのマップのオブジェクトを使用しようとしていますとき、それが再作成されるようだと、私はそれに行ってきたすべてのものが持っています無効。
私はinsertについても考えていますが、違いについてはわかりません。演算子の良いことは、オブジェクトが存在するかどうかは関係ありませんが、まだそれを参照することができます。しかし、明らかに私はこのオブジェクトでは何もできません。この場合、何が良いでしょうか?
これは意味があります。私はそれを見ませんでした。その点をご指摘いただきありがとうございます。 – sebap123