范围for,迭代器,显示类型转换,左值右值,static,,函数指针

范围for

改变字符,用引用

for (auto &c : s)   
	//...
cout << s << endl;

什么时候不能用范围for?

在循环体中向vector添加元素时不能用

迭代器怎么用?

定义:
vector<int> ::iterator it;
vector<int> ::const_iterator it;只读,叫常量迭代器
解引用:
*iter:返回元素的引用
iter->成员:相当于(*iter).成员

如果容器是常量,则迭代器只能用常量迭代器

左值、右值

左值:用这个值的地址(家庭住址)

右值:用这个值的内容(人)

函数指针

int(*p)(int,int);

p=fun;

函数指针做返回值

auto fun(int)->int(*)(int,int);
或者
using pf=int(*)(int,int);

pf fun(int);

const_cast和重载

用常量版本实现非常量版本,const_cast可以去掉const属性也可以加上

函数重载,形参顶层const

由于非const可以转换成const,也就是说可以加上顶层const,所以形参如果是有无顶层const的区别,则不能重载。

static

修饰函数内部的局部变量后,这个变量在函数外还有效,生命周期直到程序结束

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值