我想知道如何在循環內的地圖中插入值。 我在以下代碼中使用了insert()
,但這沒有奏效。如何在循環內的STL映射中插入值
#include<stdio.h>
#include<map>
#include<utility>
using namespace std;
int main()
{
int t;
scanf("%d", &t);
while (t--)
{
int n, i;
map<char*, int> vote;
char name[20], v;
scanf("%d", &n);
for (i = 0; i<n; ++i)
{
scanf("%s %c", name, &v);
vote.insert(make_pair(name, 0));
vote[name] = 0;
if (v == '+')
vote[name]++;
else
vote[name]--;
printf("%d\n", vote[name]);
printf("Size=%lu\n", vote.size());
}
int score = 0;
for (map<char*, int>::iterator it = vote.begin(); it != vote.end(); ++it)
{
printf("%s%d\n", it->first, it->second);
score += it->second;
}
printf("%d\n", score);
}
}
每次我輸入一個新的密鑰(字符串)它只是更新前一個。 地圖的大小始終爲1.
如何正確添加新元素到地圖?
把你的代碼放在你的帖子中而不是鏈接它 –
@GlennTeitelbaum沒有OP應該發佈一個[MCVE](http://stackoverflow.com/help/mcve),這實際上有點多,而不僅僅是發佈它們碼。 –
一次發生一個問題,鏈接的代碼不是特別長 –