c++11的记录

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 }

QQ截图20200227094859

初始化赋值方式

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;

 

追求吾之所爱
原文地址:https://www.cnblogs.com/rstz/p/12370640.html