我開發了一個程序,其中我接受了stl map系統本身的鍵和值。C++ STL映射鍵和值不能正常工作
我想完成以下任務。 我的密鑰範圍是從0到1000. 在向密鑰插入值之前,我必須檢查map中是否有相同的密鑰。 如果是,我必須將鍵值增加1併爲該鍵值賦值。 我正在嘗試以下方式。但我不成功。
map<int, Values> items;
Values connection (inet_ntoa(Clientaddr.sin_addr),ntohs(Clientaddr.sin_port),inet_ntoa(Servaddr.sin_addr),ntohs(Servaddr.sin_port));
for(unsigned int key=0;key<=1000;key++)
{
map<int,Values>::const_iterator itemsIterator=items.find(key);
if(itemsIterator==items.end())
{
items.insert(pair<int, Values> (key, connection));
}
else
{
cout<<"already exist";
key++;
}
}
你打算分配給所有未使用的密鑰相同的連接?如果不是,插入後需要添加一個'break;'語句。你也不需要'key ++'這一行,因爲''''''''''''''循環的下一個循環中已經增加了'key'。 – computerfreaker
如果'key + 1'也已經存在? –
我想僅將一個連接分配給一個未使用的密鑰。 – user3168101