栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

1.5 C++细节: 左值、右值和引用

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

1.5 C++细节: 左值、右值和引用

一个左值是一个标识非临时性对象的表达式。一个右值是一个标识临时性对象的表达式,或者是一个不与任何对象相联系的值。

vector arr(3);
const int x = 2;
int y;
 ...
int z=x+y;
string str="foo";
vector *ptr=&arr;

左值引用的声明是通过在某个类型后放置一个符号&来进行的。此时,一个左值引用成为了它所引用的对象的同义词。例如

string str = "hell";
string & rstr = str;
rstr +='o';
bool cond=(&str==&rstr);

左值引用用途1:给结构复杂的名称起别名

auto & whichList = theLists[ myhash (x,theLists.size())];
if (find(begin(whichList),end(whichList),x)!=end(whichList))
    return false;
whichList.push_back(x);

左值引用用途2:范围for循环

for (auto & x : arr)
     ++x;

左值引用用途3:避免复制

右值引用是通过在某个类型后放置一个符号&&而被声明。右值引用也可以引用一个右值。例如

string str="hell";
string && bad1="hello"
string && bad2= str+" ";
string && sub=str.substr(0,4)
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/457778.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号