不使用unordered_map
时间: 2024-01-07 17:23:15 浏览: 74
不使用unordered_map的话,可以考虑使用其他的数据结构来实现相同的功能。以下是一些替代方案:
1. 使用map:map是有序的关联容器,它使用红黑树实现。与unordered_map不同,map中的元素是按照键的顺序进行排序的。因此,如果你需要有序的键值对,可以使用map来替代unordered_map。
```cpp
#include <iostream>
#include <map>
int main() {
std::map<int, std::string> myMap;
myMap[1] = "apple";
myMap[2] = "banana";
myMap[3] = "orange";
for (const auto& pair : myMap) {
std::cout << pair.first << ": " << pair.second << std::endl;
}
return 0;
}
```
输出:
```
1: apple
2: banana
3: orange
```
2. 使用vector和pair:如果你只需要简单的键值对,并且不需要按照键的顺序进行排序,可以使用vector和pair来存储数据。
```cpp
#include <iostream>
#include <vector>
#include <utility>
int main() {
std::vector<std::pair<int, std::string>> myVector;
myVector.push_back(std::make_pair(1, "apple"));
myVector.push_back(std::make_pair(2, "banana"));
myVector.push_back(std::make_pair(3, "orange"));
for (const auto& pair : myVector) {
std::cout << pair.first << ": " << pair.second << std::endl;
}
return 0;
}
```
输出:
```
1: apple
2: banana
3: orange
```
3. 使用数组:如果你的键是整数,并且范围较小,可以使用数组来存储数据。数组的索引可以作为键,数组的值可以作为对应的值。
```cpp
#include <iostream>
int main() {
std::string myArray[3];
myArray[0] = "apple";
myArray[1] = "banana";
myArray[2] = "orange";
for (int i = 0; i < 3; i++) {
std::cout << i << ": " << myArray[i] << std::endl;
}
return 0;
}
```
输出:
```
0: apple
1: banana
2: orange
```
阅读全文