初學C++的一些小細節(1)

與與會發表於2020-12-13

陣列
vector <陣列型別> 陣列名稱
如:

vector <int> arr;
vector <double> arr;

auto
auto的食用方法:
1.自動型別推斷

auto a; //錯誤,必須初始化表示式
auto int a=10;//錯誤,不需要寫資料型別
auto a=10;//正確
auto a='A'; //正確
auto s("hello");  //正確

2.返回值佔位

template <typename T1, typename T2>
auto compose(T1 t1,T2 t2)->decltype(t1+t2)
{
	return t1+t2;
}
auto v= compose(2,2.24); //v的資料型別為double

3.for迴圈
遍歷for迴圈,遍歷給定序列中的每個元素並對序列中的每個值執行某種操作
(1)

string s("hello");
decltype(s.size()) punct_cnt=0;  //decltype:用於選擇和返回運算元的資料型別
for(auto c:s) //遍歷s中的每個字元
{
	if(ispunct(c))	++punct_cnt;
}

(2)

string s("hello");
for(auto &c:s); //對於s中的每一個字元,c是一個引用,賦值語句將會改變s中字元的值
	c=toupper(c);//toupper():如果是小寫英文字母,則轉換為大寫,其他字元不變。
cout<<s<<endl;

相關文章