哈希表的C++标准库实现std::unordered_map是,您可以愉快地从函数返回它:
std::unordered_map<X, Y> foo() {
std::unordered_map<X, Y> map;
return map;
}
Run Code Online (Sandbox Code Playgroud)
它可以被复制,因为它有一个复制构造函数†.如果您实现自己的哈希表,如果它具有复制构造函数,它也将是可返回的.
†在C++ 11中,移动构造函数足以满足给定的示例.