最後の質問から続けるC++ template class map私はいくつかの値を挿入する関数を実装しました。この関数は、ある範囲のキーに同じ値を挿入します。キーがマップに存在する場合は、古い値を上書きする必要があります。最終的に関数は正しく効率的ですか?あなたはそれを実装するより良い方法を提案できますか?テンプレートマップに挿入するC++関数
void insert_ToMap(K const& keyBegin, K const& keyEnd, const V& value)
{
if(!(keyBegin < keyEnd))
return;
const_iterator it;
for(int j=keyBegin; j<keyEnd; j++)
{
it = my_map.find(j);
if(it==my_map.end())
{
my_map.insert(pair<K,V>(j,value));
}
else
{
my_map.erase(it);
my_map.insert(pair<K,V>(j, value));
}
}
}
私は試してみてください。
int main()
{
template_map<int,int> Map1 (10);
Map1.insert_ToMap(3,6,20);
Map1.insert_ToMap(4,14,30);
Map1.insert_ToMap(34,37,12);
for (auto i = Map1.begin(); i != Map1.end(); i++)
{
cout<< i->first<<" "<<i->second<<std::endl;
}
}
私はこれをコードレビューに投稿する必要があります。 – ScarletAmaranth
何とかfor_eachを使うことができるのであれば、 "for"の代わりにプログラムはより多くのC++に見えるでしょう。 – rakesh
私はちょうどあなたが消去せずに値を上書きする方法を示したと思った? –