如何将许多元素插入到具有相同值的 std::map

How to insert many elements to std::map with same value

本文关键字:std map 许多 元素 插入      更新时间:2023-10-16

我想在具有相同值的地图中插入许多元素。喜欢这个:

#include <iostream>
#include <map>
using namespace std;
int main(){
    map<int,int> m;
    m[2]  = 5;
    m[5]  = 5;
    m[7]  = 5;
    m[9]  = 5;
    m[10] = 5;
    m[15] = 5;
    m[17] = 5;
    m[20] = 5;
    m[21] = 5;
    m[22] = 5;
    //. . .
    m[78] = 4;
    m[80] = 4;
    m[89] = 4;
    m[90] = 4;
    m[95] = 4;
    m[99] = 4;
    //. . .
}

有没有其他方法可以插入许多具有相同值的元素?一种更短更好的方法。对不起,如果我问了一个愚蠢的问题。

只需使用循环:

auto const keys = { 2, 5, 7, 9, 10, 15, … };
for (auto&& key : keys) {
    m[key] = 5;
}

更有效的方法是避免元素的默认构造,如下所示:

m.emplace(2, 5);
m.emplace(3, 5);
// ...