1粟焊、size()是取字符串長度的琅捏,跟length()用法相同生百。
例如:string str="0123456789";
cout <<"str.length()="<<str.length()<<endl; ? //結果為10
cout <<"str.size()="<<str.size()<<endl; ?//10
? ? ? ? 為了兼容,這兩個函數(shù)一樣柄延。 length()是因為沿用C語言的習慣而保留下來的蚀浆,string類最初只有l(wèi)ength(),引入STL之后搜吧,為了兼容又加入了size()市俊,它是作為STL容器的屬性存在的,便于符合STL的接口規(guī)則滤奈,以便用于STL的算法摆昧。string類的size()/length()方法返回的是字節(jié)數(shù),不管是否有漢字蜒程。
2绅你、sizeof
sizeof(...)是運算符伺帘,其值在編譯時即計算好了,參數(shù)可以是數(shù)組忌锯、指針伪嫁、類型、對象偶垮、函數(shù)等张咳。
? ? ? ? ?它的功能是:獲得保證能容納實現(xiàn)所建立的最大對象的字節(jié)大小。由于在編譯時計算似舵,因此sizeof不能用來返回動態(tài)分配的內存空間的大小脚猾。
例如:1)char* ss = "012345678";
sizeof(ss)為4,ss是指向字符串常量的字符指針砚哗,sizeof 獲得的是指針所占的空間,則為4
sizeof(*ss)為1婚陪,*ss是第一個char字符,則為1频祝。