std::string s = "123";
std::string s1 = "123";
s1.push_back('\0');
bool b = (s == s1);
按照C字符串的規則,我們能判斷“123\0”與"123\0\0"是一樣的,但上面的結果是b爲false,在某些情況下可能會踩坑。所以如果我們要根據C字符串的規則比較兩個字符串時,應該使用:bool b = (strcmp(s.c_str(), s1.c_str()) == 0);來判斷兩字符串是否相等。
std::string s = "123";
std::string s1 = "123";
s1.push_back('\0');
bool b = (s == s1);
按照C字符串的規則,我們能判斷“123\0”與"123\0\0"是一樣的,但上面的結果是b爲false,在某些情況下可能會踩坑。所以如果我們要根據C字符串的規則比較兩個字符串時,應該使用:bool b = (strcmp(s.c_str(), s1.c_str()) == 0);來判斷兩字符串是否相等。
對於C/C++語言來講, const就是隻讀的意思,只在聲明中使用; static一般有2個作用,規定作用域和存儲方式.對於局部變量,static規
C++ explicit構造函數 explicit按字面意思是明確的,顯式的。在C++類中只要定義的構造函數編譯器就不會幫你生成默認構造函數。
爲什麼使用const?採用符號常量寫出的代碼更容易維護;指針常常是邊讀邊移動,而不是邊寫邊移動;許多函數參數是隻讀不寫的。c
//螺旋隊列.cpp// 21 22 ... ...// 20 7 8 9 10// 19 6 1 2 11// 18 5 4 3 12// 17 16 15 14 13//看