decltype()类型指示符
设定一个返回值是int的函数f(),通过使用
1 decltype(f()) sum = x;
此时decltype()接受一个从f()返回的int型的值,并将sum设置为int型。
auto自动类型
用auto遍历二维数组
1 #include <bits/stdc++.h> 2 using namespace std; 3 int main () 4 { 5 constexpr size_t ss = 5; 6 int ia[ss][ss]; 7 for (size_t i = 0; i != ss; ++i) 8 for (size_t j = 0; j != ss; ++j) 9 ia[i][j] = i * ss + j; 10 //size_t其实时一个宏定义网上说时unsigned int,这是保证在各个平台上都能用 11 size_t cnt = 0; 12 for (auto &rom : ia) 13 for (auto col : rom) 14 col = cnt; 15 ++cnt; 16 return 0; 17 }
使用using来定义新的类型
1 using int_array = int[4]
这就是将4个int大小的的数组 封装成一个类型,并命名为int_array
assert预处理宏定义
它也就是一个预处理变量,行为类似于内联函数。
用法:
假设exp是一个判断条件,如果exp为真,则它什么也不做,为假则输出信息并阻止程序的进行。
作用:常用于检查不能发生的条件
eg:
1 #include<cassert> 2 #include<iostream> 3 using namespace std; 4 int main(){ 5 6 for(int i = 0; ; ++ i){ 7 assert(i < 10); 8 } 9 return 0; 10 }
初始化赋值方式
int units_sold(19);
int units_sold{19};
int units_sold = 0;
int units_sold = {0};
用花括号来初始化值得到了全面的应用
--,++一点东西
在能用前置版本就用前置版本,因为后置版本需要先储存在工作,毫无疑问前者相对快点。
cctype头文件中的函数
isalnum(c) c是字母或数字时为真
isalpha(c) 为字母时为真
iscntrl(c) 为控制子字符是为真
isdigit(c)为数子时
isgraph(c)不为空格但可打印是为真
ispunct(c)为标点符号时为真
isspace(c)f当为空白符时为真
isupper(c)为大写字母时
islower(c)小写字母时为真
isxdigit(c)为十六进制时为真
tolower(c)如果时达写就输出对应的小写,否则原样输出
toupper(c)如果是小写字母则输出其大写,否则原样输出
一点位运算符
>> 右移
<< 左移
& 位与 就是保留两个二进制数相同的数其他不同的都变为零
^ 位异或 就是只能对应位置有一个1否则为零
| 位或 两个二进制数对应对的位置至少一个为1则是1 否则为0
~ 位求反 也就是将1->0,0->1;