標頭檔案中不包含using宣告,可能會導致衝突
string s1
(s2)
;string s1
(n,'c');
string s1
("value"
);
1.s寫入輸出流os中,返回os
os<2.is讀取字串到s,以空白字串分割,返回is
is>>s;
3.從is中讀取一行賦給s,返回is,包括空格,以回車結束
getline
(is,s)
;int main()
非int輸入結束
int value;
while
(cin>>value)
while
(cin>>value)
if(cin.
get()!=
'\n')4.
<
,<=
,>
,=>
,字典序比較,大小寫敏感
5.獲取字串長度,
size
()返回的是無符號整型,
string:
:size_type len = line.
size()
;auto len = line.
size()
;
string str
("just string");
for(auto c:str)
cout<("just string");
for(auto &c:str)
c =toupper
(c);
cout<不同,返回第一對相異字元的比較結果
字面值不能直接相加
string s1 =
"hello"
+","
; wrong
函式
value
isalnum( c )
數字isalpha( c )
字母iscntrl( c )
控制字元
isdigit( c )
數字isgraph( c )
不是空格但是可列印
islower( c )
小寫字母
isprint( c )
可列印字元
ispunct( c )
標點符號
isspace( c )
空白isupper( c )
大寫字母
isxdigit( c )
十六進製制
tolower( c )
轉小寫toupper( c )
轉大寫
vector<
t>
v2(v1)
;vector<
t>
v3(n,val)
;vector<
t>
v4(n)
;執行預設初始化
vector<
t>
v5(a,b,c...
)vector<
t> v6 =
與(n)的區別
乙個元素為n和n個預設初始化元素
1.當迴圈體內包含向vector物件新增元素的語句,則不可使用範圍for迴圈,end()無窮無盡
2.使用size_type
vector::size_type
函式value
v.push_back()
$1600
手機$12
導管$1
for的使用和string一致
auto b = v.
begin()
,e = v.
end(
);
函式
value
*iter
返回所指元素的引用
iter->mem
等價於(*iter).mem
iter->empty
(*iter).empty()
–iter,++iter
前進,後退一位
itrer.begin() ; iter.end()
可以讀寫
iter.cbegin() ; iter.cend()
只能讀取
vector< int >::iterator it
可以讀寫
vector< int >:: const_iterator it
只可以讀
for
(auto it = s.
begin()
;it != s,
end();
++it )
*it =
toupper
(*it)
;
有正有負,是元素之間的間隔
auto mid = v.
begin()
+ v.
size()
/2;
指標可以進行加法運算
int *beg =
begin
(ia)
;int *last =
end(ia)
;int *p = beg + n;
auto n =
end(ia)
-begin
(ia)
;while
(beg < last)
beg++
;
const char *str = s.
c_str()
;char *str1 =
(char*
)s.c_str()
;//舊版強制轉換
目前還是vector好
int arr =
;vector
ivec
(begin
(arr)
,end
(arr));
vectoe
ivec1
(arr+
1,arr+4)
;
多維陣列訪問除最內層外,其他層全是引用
1.auto修改
int cnt =0;
int ia[3]
[4]=
,,};
for(auto &row : ia)
for(auto &col : row)
2.auto訪問
for
(const auto &row : ia)
for(auto col : row)
cout<
for
(auto p =
begin
(ia)
;p !=
end(ia)
;++p)
for(auto q =
begin
(*p)
;q !=
end(
*p);
++q)
C Primer 第三章 字串 向量和陣列
string和vector是兩種最重要的標準庫型別。內建陣列是一種更基礎的資料型別,string和vector是對陣列的某種抽象。命名空間的using宣告 使用using宣告可以更方便的使用命名空間中的成員。using namespace name 新增該語句後可以直接飲用name,而不用再新增na...
第三章 字串 向量和陣列
標頭檔案不應包含using宣告。c 標準一方面對庫型別所提供的操作做了詳細規定,另一方面也對庫的實現者做出了一些效能上的需求。因此,標準庫型別對於一般應用場合來說有足夠的效率。如果使用等號 初始化乙個變數,實際上執行的是拷貝初始化 copy initialization 編譯器把等號右側的初始值拷貝...
第三章 字串 向量和陣列
1 以命名空間std為例,兩種宣告方式 1 using std cin 或cout,endl等 2 using namespace std 2 標頭檔案中不應包含using宣告。1 初始化的方式分為拷貝初始化 使用等號 與直接初始化 不使用等號 1 使用getline讀取一整行 直接讀只會讀乙個單詞...