c++11的初见

列表初始化

c++11以后支持{ }的列表初始

可以使用{ }括住数据来进行初始化,使用{ }初始化时可以省略=号

{ }中的数据要匹配构造;

使用{ }可以统一初始化方式。

cpp 复制代码
#include<iostream>
#include<vector>
using namespace std;
int main(){
	vector<pair<int,int>>vp;
	vp.push_back({1,2});
	cout<<vp.front().first<<" "<<vp.front().second;
} 

右值引用和移动语义

左值和右值

特征 左值 (lvalue) 右值 (rvalue)
内存地址 有确定的内存地址,可被 & 取址 无稳定地址,不可被 & 取址
生命周期 持久存在,表达式结束后依然有效 短暂存在,通常在当前语句结束后销毁
赋值操作 通常可放在赋值号 = 左边(const 左值除外) 只能放在赋值号 = 右边
典型示例 变量名、解引用指针 *p、数组元素 arr[i]++i 字面量 10、算术表达式 a+b、函数返回的临时对象、i++

右值引用就是给右值取别名;

左值引用不可以直接引用右值;

const 左值可以使用右值引用

const int & rx1=10;

右值引用不可以直接引用左值;

右值可以使用move函数给左值引用

int&& rrx1=move(b);

move标记的数据可以被抢夺数据。

string s2=move(s1),s1会变空,

相关推荐
倒头就睡的小比特2 天前
算法竞赛C++常用的STL
c++·算法
weilx12342 天前
C++笔记-文件IO-<fcntl.h>
c++
小羊没烦恼!2 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
伞伞悦读2 天前
【第38期】Python 模块与包详解:import、from、模块搜索路径、包结构和 __init__
开发语言·python
猎头南楼2 天前
知识社区推荐系统实践:新用户冷启动与长短期兴趣建模的挑战 资深推荐算法工程师
人工智能·深度学习·算法·机器学习
Smileyqp沛沛2 天前
前端?C++ ?较大差异基础罗列
c++·基础·前端转c++
C语言小火车2 天前
C/C++ 为什么需要编译器?
开发语言·c++
旖旎夜光2 天前
力控面试题 01.01: 判定字符是否唯一(位运算) —— 题解
c++·学习·算法·leetcode·力控
wzdark2 天前
大规模并行计算中的负载均衡算法研究4
算法
吞下星星的少年·-·2 天前
C++ 萌新语法入门篇
c++·算法比赛