は、いくつかの作業コードです:マップの最大効率的な挿入
std::pair<typename std::map< time_t, T >::iterator, bool> ret;
ret = prt_map->insert (std::pair< time_t, T >(seconds , value));
if (ret.second == false) // exists
{
... update exising value
}
私は、最大効率の挿入コードにアップグレードして--prt_map->エンド()から開始することの必要性を挿入するために先端を与えたいです。以下のようなもの:
prt_map->insert (--prt_map->end(), std::pair< time_t, T >(seconds , value));
しかしprototupeはSTDを返さないこの挿入機能::能力を持っているために、これを解決するためにどのように...そうだとすれば、既存および更新をチェックする(値の追加やないことを通知ブール値と対既存の値を更新する
に定義されている(例えば、 'のstd :: unordered_map' )。 –
@ n-m私はいつも新しいgccを使うことができないので、プログラムをコンパイルするときにシステム上でunordered_mapがサポートされなくなる可能性があります。 – abrahab
'boost :: unordered_map'はほぼすべての場所でサポートされています。 –