2013-02-27 34 views
-1

我想知道我是否可以使用散列表作爲C++中函數的返回類型。 :)散列表作爲C++函數的返回類型

+0

您可以使用_any_ copy-able類型作爲返回值。請小心,因爲它可能會導致整個表格的複製。 – 2013-02-27 14:41:28

+0

如果你有一個散列表類型,它可以複製構造,那麼是的。 – juanchopanza 2013-02-27 14:41:28

+0

是的,它可以複製......謝謝你們...... – 2013-02-27 14:42:09

回答

5

C++標準庫實現一個哈希表的是std::unordered_map,是的,你可以愉快地從一個函數返回它:

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

它可以被複制,因爲它有一個拷貝構造函數 。如果你實現了自己的散列表,如果它有一個拷貝構造函數,它也將是可返回的。

†在C++ 11中,移動構造函數對於給出的示例就足夠了。