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会变空,

相关推荐
想吃火锅100510 小时前
【leetcode】1.两数之和js版
javascript·算法·leetcode
qeen8710 小时前
【C++】类与对象之类的默认成员函数(二)
android·c语言·开发语言·c++·笔记·学习
CRMEB系统商城10 小时前
CRMEB多商户系统(Java)v2.3公测版发布
java·开发语言·人工智能·小程序·开源·php
动能小子ohhh10 小时前
DocForge平台的设计与开发--文件上传接口的实现
开发语言·人工智能·python·langchain·ocr·fastapi
满天星830357710 小时前
【Qt】信号和槽(二) (自定义信号和槽)
开发语言·数据库·qt
net3m3311 小时前
一阶软件低通滤波器算法
人工智能·算法
王老师青少年编程11 小时前
信奥赛C++提高组csp-s之搜索进阶(记忆化搜索案例实践3)
c++·记忆化搜索·方格取数·csp·信奥赛·csp-s·提高组
超哥--11 小时前
B站视频内容智能分析系统(三):B站视频自动采集
java·开发语言·音视频·ai编程
夏语灬11 小时前
cryptography:Python 密码学标准库的终极选择
开发语言·python·密码学
水木流年追梦11 小时前
大模型入门-大模型优化方法12-YaRN 长文本外推技术
人工智能·分布式·算法·正则表达式·prompt