c++11/14新特性学习
1.__func__ 預定義表示符
返回所在函數的名字
#include<string> #include<iostream> using namespace std; const char* hello(){return __func__}int main() {cout<<hello()<<endl; }打印結果:
hello
2.__VA__ARGC__
可以在宏定義的實現部分替換省略號所代表的字符串
#define PR(...) print(__VA__ARGC__)
#include<stdio>#define LOG(...) {\ fprint(stderr,"%s:Line %d:\t",__FILE__,__LINE__);\ fpint(stderr,__VA__ARGC__);\ fprint(stderr,"\n");\ }int main() { int x =3; LOG("x=%d",x);}打印結果:
main.cpp : Line 12: x=3
3.long long 整型
long long 和 usigned long long 不同平臺有不同長度,但至少64位
long long int a = 90909090LL;
usigned long long int b= 23434322ULL;
等價類型:
long long ,signed long long ,long long int, signed long long int;
同理 usigned long long;
4.__cpluscplus
在c和c++混編的時候,我們的頭文件有如下聲明:
#ifded __cpuscplus
extern "c"
{
#endif
//代碼段
#ifded __cpuscplus
}
?
#endif
?
5.快速初始化成員變量
可以用{}進行初始化
string str("hello");
6.序列for循環
在C++中for循環可以使用類似java的簡化的for循環,可以用于遍歷數組,容器,string以及由begin和end函數定義的序列(即有Iterator),示例代碼如下:
map<string,?int>?m{{"a",?1},?{"b",?2},?{"c",?3}}; ?
for?(auto?p?:?m){ ?
? cout<<p.first<<"?:?"<<p.second<<endl; ?
}?
未完待續。。。。
總結
以上是生活随笔為你收集整理的c++11/14新特性学习的全部內容,希望文章能夠幫你解決所遇到的問題。