unordered-map

    2熱度

    1回答

    我試圖創建一個std :: unordered_map,使用用戶定義的散列函數和平等謂詞,對於矩陣行積分內置類型。我使用std :: bind,因爲我需要哈希和平等仿函數爲變量範圍工作。我將如何獲得以下代碼來編譯和按預期工作?我猜測我的錯誤是在清單底部,我使用std :: bind並實例化std :: unordered_map。 一些澄清: 我不能,因爲我關心存儲矩陣行中的整數各個位,所以,除非

    -1熱度

    2回答

    我知道這個問題可能聽起來很奇怪,但有一些遺留代碼,其中有一個unordered_map其中的std :: string鍵最大大小爲8 + 1(1表示空終止)。 我正在接受char [8]變量中的字符串,我不希望將strcpy僅用於find()調用的temp std :: string。 有沒有辦法實現一些比較器,所以我可以直接在find()調用中使用char [8]? 請記住,字符[8]可能包含類

    6熱度

    2回答

    當我第一次訪問std::unordered_map using operator []中的元素時,它會自動創建。什麼(如果有的話)保證其初始化? (它保證是價值初始化,或僅被構造)? 實施例: std::unordered_map<void *, size_t> size; char *test = new char[10]; size[test] += 10; 是大小[測試]保證是10在

    1熱度

    1回答

    我正在使用unordered_map> float,unsigned short>來實現C++中的哈希表。 我知道在大多數情況下使用浮點數作爲哈希表的鍵是因爲比較它們是容易出錯的。然而,在這種情況下,我正在從大文件中讀取浮點數,並且它們的精度是已知且恆定的。 但是,我想知道unordered_map如何散列我的浮動以估計碰撞頻率的細節。當我創建無序映射時,我不重寫默認哈希實現。根據文檔,默認的散列

    10熱度

    4回答

    在C++中的多重映射看起來工作非常奇怪的,我想知道爲什麼 #include <iostream> #include <unordered_map> using namespace std; typedef unordered_multimap<char,int> MyMap; int main(int argc, char **argv) { MyMap map;

    3熱度

    1回答

    我在家用電腦上編寫了一個使用Visual C++的類的程序,但是,我試圖在學校的Linux計算機上運行它,並且出現了這些錯誤。前 '<' 令牌 ; std::tr1::unordered_map <string, Word*> map; 這兩種錯誤出現在代碼以上行 ISO C++禁止 'unordered_map' 的聲明無類型 預期 ''最初我使用hash_map但發現只能在Visual C

    45熱度

    4回答

    從unordered_map獲取密鑰和值的列表(作爲vector)的最有效方式是什麼? 具體而言,假設有問題的地圖是unordered_map<string, double>。 然後我想獲取密鑰作爲vector<string>,並將其值設爲vector<double>。 unordered_map<string, double> um; vector<string> vs = um.enum_

    0熱度

    1回答

    我有unordered_map,無法比較find()和end()返回的迭代器。這裏的情況: unordered_map<IpAddressPort, uint32, IpAddressPortKey> current_sequence_numbers; ... if (current_sequence_numbers.find(address) == current_sequence_nu

    1熱度

    3回答

    基本上,我有一個unordered_map並試圖向它添加一組對......約500,000個對。我注意到,當我添加對時,插入速度變得越來越慢,直到它最終停止在一起。任何想法爲什麼這可能是或如何解決這個問題? 地圖定義: std::tr1::unordered_map<std::pair<int, int>, int, pairHash> x_map ; Hash函數 - 注意,對於我來說,我不

    10熱度

    2回答

    我努力做到以下幾點: boost::unordered_map<boost::flyweight<std::string>, boost::flyweight<std::string> > map; boost::flyweight<std::string> foo(name); map[foo] = foo; 但是編譯器會抱怨: 「錯誤C2665:‘提高:: HAS