C++ string使用for改变为何必须使用引用
来源:互联网 发布:阿里云2016年宕机 编辑:程序博客网 时间:2024/05/21 10:59
例子1:
#include <iostream>#include <cctype>using std::cin;using std::cout;using std::endl;using std::string;int main(){ string s("assss,ddd,eeee"); decltype(s.size()) punct_cnt = 0; for(auto c : s){ if(ispunct(c)){ ++punct_cnt; } } cout << punct_cnt << endl;}
一个普通的遍历字符串,输出标点符号值为2
例子2:
当改变std::string 中的值
错误代码:
#include <iostream>#include <cctype>using std::cin;using std::cout;using std::endl;using std::string;int main(){ string s("assss,ddd,eeee"); decltype(s.size()) punct_cnt = 0; for(auto c : s){ c = toupper(c); } cout << s << endl;}
输出assss,ddd,eeee
正确代码:
#include <iostream>#include <cctype>using std::cin;using std::cout;using std::endl;using std::string;int main(){ string s("assss,ddd,eeee"); decltype(s.size()) punct_cnt = 0; for(auto &c : s){ c = toupper(c); } cout << s << endl;}
输出ASSSS,DDD,EEEE
结论:如果要改变string中对象的字符的值,必须把循环变量定义成引用类型,如果是直接=,只是对原先对象的拷贝(即值的传递)。而想要去改变原始值,就要去获得其原始对象,所以使用引用。
0 0
- C++ string使用for改变为何必须使用引用
- C++中为何使用变量引用
- 在C++中,什么时候必须使用引用
- [C++] 使用基于范围的for循环操作string
- c++引用,什么时候函参必须使用引用?
- C++string的使用
- C++string使用详解
- C++string使用
- 使用Arraylist实现动态加载改变string【】
- C++中使用string引用头文件
- 拷贝构造函数的参数为什么必须使用引用类型
- 拷贝构造函数的参数为什么必须使用引用类型.
- 拷贝构造函数的参数为什么必须使用引用类型
- 拷贝构造函数的参数为什么必须使用引用类型
- 拷贝构造函数的参数为什么必须使用引用类型
- 拷贝构造函数的参数为什么必须使用引用类型
- 拷贝构造函数的参数为什么必须使用引用类型
- 拷贝构造函数的参数为什么必须使用引用类型 .
- Oracle 中字段属性
- 微信js-sdk 分享 的误解
- 使用JAVA操作netty框架
- linux利用shell实现守护进程的脚本
- Android 下拉刷新控件
- C++ string使用for改变为何必须使用引用
- 心性的刚强,男人
- Laravel 学习笔记——路由(路由与控制器)
- SSL握手过程详解
- 工作需要学习的东西之 telnet
- (十二)Beans自动装配(Auto-Wiring)
- 阻止事件冒泡\阻止默认行为
- 常用OpenCV 2.0库函数速查和OpenCV 3.0函数索引
- Spring Url映射