-1
A
回答
2
他們當然不映射到相同的值,const string*
是指針類型,並且自你打電話new string
兩次,則結束與不具有存儲器標識(指針不相等)兩個單獨的對象。
更糟糕的是,你在程序結束時會泄漏它們。
什麼(可以說)更糟,擁有原始指針和裸new
調用在現代C++中被認爲是有害的。
幸運的是,它的所有修復都與unordered_map<string, int>
- 無需任何指針。
0
您的C++實際上是「Java-- + C」。
刪除所有這些愚蠢的指針。
所有你需要的是unordered_map<string,int>
和使用純值,而不是堆分配 「new
的」
只是做
#include <unordered_map>
#inclide <string>
#include <iostream>
int main()
{
unordered_map<string,int> mymap;
mymap["bar"] = 5;
mymap["bartest"] = 10;
std::cout << mymap["bar"] << ' ' << mymap["bartest"] << '\n';
return 0;
}
相關問題
- 1. 如何通過值傳遞而不是通過React引用?
- 2. 如何散列std :: unordered_map :: const_iterator?
- 3. 散列的unordered_map
- 4. 如何通過價值添加字符串,而不是引用
- 5. 如何通過整數索引引用Dictionary <string,string>中的項目?
- 6. C++,如何通過unordered_map
- 7. 如何添加散列值而不是用新值覆蓋?
- 8. 如何從散列集<string>獲取正確的值?
- 9. STL如何工作以散列unordered_map <>的密鑰?
- 10. 如何通過值知道散列鍵?
- 11. 如何使用LINQ減少<string,列出<string>>爲<string,string>?
- 12. 排序散列maps地圖<String,?>
- 13. print unordered_map <std :: string,std :: list <std::string>
- 14. 如何通過散列的Perl散列中的值訪問鍵?
- 15. 如何使升壓unordered_map支持輕量級<string>
- 16. C#如何通過list.count命令dictionary <string,list <string>>?
- 17. std :: unordered_map通過引用傳遞
- 18. JAXB XJC創建列表< Objects >而不是List < String >
- 19. 通過引用傳遞,而不是返回一個值
- 20. Bundle.putSerializable序列化引用,而不是值?
- 21. <String,String>散列圖中的整數對象
- 22. 引用C++而不通過引用
- 23. 如何在history.js中使用正斜槓而不是散列(#)?
- 24. 你如何使用map來獲得散列而不是數組?
- 25. 如何在jsp:include文件中通過引用(而不是按值)訪問對象?
- 26. 通過使用「\」引用子例程的散列來傳遞散列:my_subroutine(%my_hash)
- 27. 在C++中使用<string,string>或<string,char>映射而不是<char, char>
- 28. 如何通過unordered_map迭代,但不能更改其映射值?
- 29. 通過引用訪問「散列哈希」的內部值
- 30. 如何在perl中通過引用傳遞散列
使用'的std :: unordered_map <的std :: string,V>'。 –
將來如果你在這裏粘貼代碼而不是提供快照會更好。 – Ray
'std :: string',除了是一個字符串類,也是一個資源管理類。因此,不要通過將字符串對象本身作爲資源進行管理來添加多餘的開銷。使用價值語義,就像皮特貝克爾說的那樣。 – StoryTeller