unordered_map<int> result_set;我要返回这个哈希表里面的键,return怎么写
时间: 2024-04-09 09:29:10 浏览: 65
如果你想要从函数中返回 `unordered_map<int>` 类型哈希表 `result_set` 的键,你使用以下方法之一:
1. 使用 `vector<int>` 来存储哈希表的键,并将其作为的返回值:
```cpp
#include <iostream>
#include <unordered_map>
#include <vector>
std::vector<int> getKeys(const std::unordered_map<int, int>& result_set) {
std::vector<int> keys;
for (const auto& pair : result_set) {
keys.push_back(pair.first);
}
return keys;
}
int main() {
std::unordered_map<int, int> result_set;
result_set.insert(std::make_pair(1, 10));
result_set.insert(std::make_pair(2, 20));
result_set.insert(std::make_pair(3, 30));
std::vector<int> keys = getKeys(result_set);
// 打印键
for (const auto& key : keys) {
std::cout << key << std::endl;
}
return 0;
}
```
在上面的示例中,我们定义了一个名为 `getKeys` 的函数,它接受一个 `unordered_map<int, int>` 类型的参数 `result_set`。函数内部使用循环遍历哈希表的键,并将其存储在一个 `vector<int>` 类型的变量 `keys` 中。然后,函数返回这个 `keys` 变量。
在主函数中,我们创建了一个哈希表 `result_set` 并插入了一些键值对。然后,我们调用 `getKeys` 函数来获取哈希表的键,并将返回的键存储在 `keys` 变量中。最后,我们遍历 `keys` 变量并打印每个键。
2. 直接返回 `unordered_map<int>` 类型的哈希表,但在函数调用时需要注意:
```cpp
#include <iostream>
#include <unordered_map>
const std::unordered_map<int, int>& getResultSet() {
static std::unordered_map<int, int> result_set;
result_set.insert(std::make_pair(1, 10));
result_set.insert(std::make_pair(2, 20));
result_set.insert(std::make_pair(3, 30));
return result_set;
}
int main() {
const std::unordered_map<int, int>& result_set = getResultSet();
// 打印键
for (const auto& pair : result_set) {
std::cout << pair.first << std::endl;
}
return 0;
}
```
在上面的示例中,我们定义了一个名为 `getResultSet` 的函数,它返回一个 `const unordered_map<int, int>&` 类型的引用。函数内部创建了一个静态的哈希表 `result_set` 并插入了一些键值对。然后,函数返回这个哈希表的引用。
在主函数中,我们通过调用 `getResultSet` 函数来获取哈希表的引用,并将其存储在一个常量引用变量 `result_set` 中。然后,我们通过循环遍历 `result_set` 来打印哈希表的键。
无论使用哪种方法,都能实现从函数中返回 `unordered_map<int>` 类型的哈希表的键。
希望这个解答对你有所帮助!如果你还有其他问题,请随时提问。
阅读全文