【问题标题】:Hash table as return type of a function in C++哈希表作为 C++ 中函数的返回类型
【发布时间】:2013-02-13 10:03:57
【问题描述】:

我想知道是否可以使用哈希表作为 C++ 中函数的返回类型。 :)

【问题讨论】:

  • 您可以使用 any 可复制类型作为返回值。请小心,因为它可能会导致整个表的复制。
  • 如果你有哈希表类型,并且可以复制构造,那么可以。
  • 是的,可以复制...谢谢大家...
  • 您需要一个复制构造函数来返回该对象。
  • 您应该将指针或对哈希表的引用传回。否则它会消耗内存并花费更长的时间。

标签: c++ hashtable


【解决方案1】:

哈希表的 C++ 标准库实现是 std::unordered_map,是的,您可以愉快地从函数中返回它:

std::unordered_map<X, Y> foo() {
  std::unordered_map<X, Y> map;
  return map;
}

它可以被复制,因为它有一个复制构造函数。如果你实现自己的哈希表,如果它有一个复制构造函数,它也将是可返回的。

† 在 C++11 中,对于给出的示例,移动构造函数就足够了。

【讨论】:

    猜你喜欢
    • 2021-07-01
    • 2011-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多