string和char數組的區別是什麼以及map可否設置key為char數組?
01-15
如題,感覺用map的時候key和value都設置成string的時候插入char會出問題,還有所有字元串函數比如strcmp不能用在string身上
string操作請使用迭代器和#include &,不要再去想什麼strcmp了。還有map的key是不能修改的,你要麼erase要麼insert。
搞不懂為啥方便的string不用,非要用char[]?
是strcmp方便還是直接==方便?
一般盡量都用string,如果某些特殊需要非要用char*做map,也是可以的,自己寫比較函數。下面是直接增加std命名空間下面的equal_to支持的參數類型,這樣寫的好處是,不用顯示的在map定義的時候寫比較函數,還可以被同類STL類使用,比如hash_map、set等等。
#include &
#include &
#include &
要學C++,不要學C.
用了include&<中&>後.
什麼都不用擔憂了.哪有這麼多英文煩死人.千萬不要二者混用,別的都不說了,char和string混著用你自己用著難道不累么?
可以用字元數組做key,不過要提供相應的less運算。只有在所有key的長度都相同時,才應該考慮用過字元數組。推薦用std::array&
題主認真學習過了嗎,還不明白cpp的宗旨。要用strcmp就用char數組,要方便就用string,強行用就strcmp(str1.c_str(),str2.c_str())
推薦閱讀:
※为什么ASCII被摆放成现在这个样子?——我指的是各个ASCII字符的编号顺序
※如何評價 ScyllaDB?
※c++primer和more effective c++的一處矛盾?
※如何判斷CTP的行情線程是否阻塞?
※Qt 重繪問題?