unordered-set

    8熱度

    2回答

    給定兩個std::set s,可以同時對兩個集合進行迭代並比較元素,從而導致線性複雜度。這對std::unordered_set s不起作用,因爲元素可能以任何順序存儲。那麼的a == b多貴?

    5熱度

    2回答

    我正在寫一個具有作爲其成員的類型爲unordered_set的類。 因此我需要寫一個hash<Foo>的專業化。這個專業化需要在聲明Foo後進行定義。但在我看來,在定義成員unordered_set<Foo>之前,我已經需要hash<Foo>的專業化了。至少它不會編譯並在那裏失敗。我嘗試了一個哈希模板的前向聲明,但無法使其工作。 相關的代碼片斷是:預先

    2熱度

    1回答

    我想有一個函數來從unordered_set「刪除一個元素」。 但是,當它使用擦除(begin())實現時,它變得非常慢。 (這是在g ++ - 4.5.3;也許begin()必須遍歷大量的空散列桶?) 請參閱下面的示例代碼,令人驚訝的時間。 有沒有其他一些方法來實現「刪除一個元素」,將有更大的效率? (我想允許這將迭代器失效等干預組操作。) #include <unordered_set> #

    5熱度

    1回答

    我必須使用unordered_set爲一個相當大的項目,並確保我正確使用它,我嘗試了一個小例子。 #include <iostream> #include <unordered_set> using namespace std; class Foo { private: int x; public: Foo(int in) {x = in;}

    4熱度

    2回答

    顯然,unordered_set::erase和unordered_set::count返回的東西不是嚴格的布爾值(邏輯上,也就是說,我不是在談論實際類型)。 所鏈接的頁面讀取的第三個版本擦除: size_type erase(const key_type& key); 移除與 這有一個提示音,這是暗示有可能是密鑰值的密鑰元素更多而不僅僅是具有給定鍵的一個元素。它沒有明確說明這一點,但聽起來很

    1熱度

    1回答

    我試圖從boost和標準的應用程序中使用unordered_set,其目的是找到這個地方,即這個集合中某些元素的索引。結果之間存在細微的差異。根據這個簡單的程序,提升中的元素是相反的。哪裏有問題? 簡單的 '假設' 代碼: #include <iostream> #include <iterator> #include <unordered_set> #include <boost/unor

    2熱度

    2回答

    我想在不安裝Boost的情況下使用unordered_set。我試圖添加--std=gnu++0x,但它不是一個公認的選項。 v4.1.2是否包含unordered_set?如果是這樣,我怎麼得到它的頭文件? 這是一臺Centos 4機器。

    4熱度

    1回答

    我發現這個標準作爲後條件爲rehash功能在無序關聯式容器: 發表:)a.bucket_count()> a.size(/ a.max_load_factor()和 a.bucket_count()> = n。 (n爲桶的容器內的數) 能否取上述的意思是,當任一上述條件被滿足用於所有實現的自動重散列被觸發?或者,是否可以自由決定什麼時候重新刷新,以上只適用於rehash函數?

    0熱度

    3回答

    我必須將windows代碼重寫爲跨平臺視圖。這裏是例子: std::unordered_set<Type>::iterator it = ...; it._Ptr->_Myval->... Everywere在代碼中存在迭代_Ptr成員,但在我的文檔無法找到它。我認爲它適用於visual studio(它是stl的實現)。任何想法如何取代它? _Myval是什麼? UPD: for(std:

    22熱度

    2回答

    我just發現自己有點吃驚暫時無法簡單地用一個 std::unordered_set<std::array<int, 16> > test; ,因爲似乎沒有成爲一個std::hash專業化爲std::array秒。這是爲什麼?或者我根本找不到它?如果確實沒有,下面的實現嘗試可以簡化嗎? namespace std { template<typename T, size_t N>