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 }
初始化赋值方式
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;
c++11的记录的更多相关文章
- C++11 语法记录
转自:http://blog.csdn.net/crayondeng/article/details/18563121 一.Lambda表达式 C++ 11中的Lambda表达式用于定义并创建匿名的函 ...
- windows 下使clion支持c++11操作记录
最近用上了windows下的clion,发现默认安装的MINGW版本太低,导致所带的gcc版本竟然是3.5的,实在太老了,不支持c++11,于是手动修改了mingw的版本.首先去mingw的官网下载最 ...
- c++11多线程记录0
两种并发编程模型 多进程 进程间通信常用的几种方式: 文件 管道 消息队列 多线程 一个进程中存在的多个线程,通常通过共享内存来通信,(说的非常非常粗俗,就是通过类似"全局变量"的 ...
- c++11多线程记录6:条件变量(condition variables)
https://www.youtube.com/watch?v=13dFggo4t_I视频地址 实例1 考虑这样一个场景:存在一个全局队列deque,线程A向deque中推入数据(写),线程B从deq ...
- c++11多线程记录5: Unique Lock和延时初始化
https://www.youtube.com/user/BoQianTheProgrammer 视频网址 Unique Lock unique_lock和lock_guard类似,都是mutex的w ...
- c++11多线程记录4:死锁
简单示例 举个例子,桌上有一支笔和一张纸,小A和小B都要拿到纸笔写字 小A拿了笔,小B拿了纸,这时就形成了死锁(两人都不愿意让出纸笔). 其实只要稍加控制就可以避免这种情况:规定必须先拿到纸再能去尝试 ...
- c++11多线程记录3: 数据争用和Mutex的使用
https://www.youtube.com/watch?v=3ZxZPeXPaM4 学习视频 数据争用 简单来说就是存在多个线程同时对某个共同的对象进行读写(至少有一个线程在做写操作),造成读取这 ...
- c++11多线程记录2:线程管理
线程没有调用join和detach thread对象必须调用join或者detach,否则程序会终止 例如: void func() { std::cout << "hello, ...
- c++11多线程记录1 -- std::thread
启动一个线程 话不多说,直接上代码 void func(); int main() { std::thread t(func); //这里就开始启动线程了 t.join(); // 必须调用join或 ...
随机推荐
- Python变量理解
变量进阶(理解) 01. 变量的引用 变量 和 数据 都是保存在 内存 中的 在 Python 中 函数 的 参数传递 以及 返回值 都是靠 引用 传递的 1.1 引用的概念 在 Python 中 变 ...
- 字符串类型:char,varchar,text,enum,set
字符串类型 1.char 格式:char (M) 2.varchar 格式:varchar (M) [注意]M表示允许的字符串长度[65535].M表示的是字符数,而不是字节数.但是最大长度的使用是按 ...
- 如何用 Python 实现超级玛丽的人物行走和碰撞检测?
功能介绍 人物行走 人物的行走速度这边分成水平方向(X轴)和竖直方向(Y轴),水平方向的速度要考虑加速度和摩擦力,竖直方向的速度要考虑重力加速度. 水平方向:设定X轴向右走的速度为大于0,向左走的 ...
- 红帽RHCE培训-课程2笔记目录
目录 1 kickstart自动安装 DHCP+TFTP(syslinux) +FTP +KICKSTART ~/anaconda-ks.cfg system-config-kickstart 2 g ...
- GO:go语言介绍
什么是go语言 Google开源 编译型语言 21世纪的C语言 go开发团队: go的特点 语法简洁 开发效率高 执行性能好 发展现状 最近新兴的行业公司一般会使用go语言作为主要开发语言 容器虚拟化 ...
- SPAN, RSPAN, ERSPAN
该文档摘自:Home > CCIE Routing and Switching Study Group > Discussions 由 Deben 于 2015-2-6 上午6:50 创建 ...
- 四、Python文件操作
描述:Python的文件操作涉及对文件的读/写与编码的处理. 1.两种写法 1.1 第一种 1 f = open('文件路径', '文件操作方式', encoding='utf-8') 2 对文件操作 ...
- js禁止原生手机返回键(物理返回键)
$(document).ready(function() { if (window.history && window.history.pushState) { $(window).o ...
- Centos610快照克隆后网络配置
VMware中安装的Centos610快照并克隆后网络配置 1.网卡配置 vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 HWADDR ...
- 世界协调时间(UTC)与中国标准时间
整个地球分为二十四时区,每个时区都有自己的本地时间.在国际无线电通信场合,为了统一起见,使用一个统一的时间,称为通用协调时(UTC, Universal Time Coordinated).UTC与格 ...
