C++的unordered_map如何在指定位置插入元素
时间: 2023-08-04 09:19:32 浏览: 170
在C++的unordered_map中,我们可以使用insert()函数在指定位置插入元素。具体来说,我们可以使用insert()函数的迭代器版本,该版本接受一个迭代器参数,该参数指向我们希望将新元素插入到其前面的位置。以下是一个示例代码:
```c++
#include <iostream>
#include <unordered_map>
int main() {
std::unordered_map<int, std::string> myMap = {{1, "one"}, {2, "two"}, {3, "three"}};
auto it = myMap.find(2); // 获取键为2的元素的迭代器
if (it != myMap.end()) {
myMap.insert(it, {4, "four"}); // 在键为2的元素前插入键为4、值为"four"的元素
}
for (auto const& [key, value] : myMap) {
std::cout << key << ": " << value << std::endl;
}
return 0;
}
```
输出结果为:
```
1: one
4: four
2: two
3: three
```
在上面的示例代码中,我们首先创建了一个unordered_map,然后获取键为2的元素的迭代器,并将其传递给insert()函数。该函数在键为2的元素前插入了一个键为4、值为"four"的元素。最后,我们遍历unordered_map,并输出其所有元素的键和值。注意,在unordered_map中,元素的顺序是不确定的,因此输出结果可能会与上述结果略有不同。
阅读全文