我想知道我是否可以使用Hash表作为C ++中函数的返回类型。 :)
答案 0 :(得分:5)
哈希表的C ++标准库实现是std::unordered_map
,是的,您可以愉快地从函数中返回它:
std::unordered_map<X, Y> foo() {
std::unordered_map<X, Y> map;
return map;
}
可以复制它,因为它有一个复制构造函数†。如果您实现自己的哈希表,如果它具有复制构造函数,它也将是可返回的。
†在C ++ 11中,移动构造函数对于给出的示例就足够了。