当前位置:网站首页>3.1-3.3 读书笔记
3.1-3.3 读书笔记
2022-08-10 06:12:00 【CCSUZB】
3.2.2 string对象上的操作
请说明string类的输入运算符和getline函数分别是如何处理空白字符的。
(1)string:类似 is >> s 的读取,string对象会忽略开头的空白并从第一个真正的字符开始,直到遇见下一空白为止。
(2)getline:类似 getline(is, s) 的读取,string对象会从输入流中读取字符,直到遇见换行符为止。
3.2.3 处理string对象中的字符
下面的程序有何作用?它合法吗?如果不合法?为什么?
string s;
cout << s[0] << endl;
不合法。使用下标访问空字符串是非法的行为。
下面的范围for语句合法吗?如果合法,c的类型是什么?
const string s = “Keep out!”;
for(auto &c : s){ /* … */ }
要根据for循环中的代码来看是否合法,c是string 对象中字符的引用,s是常量。因此如果for循环中的代码重新给c赋值就会非法,如果不改变c的值,那么合法。
3.3 标准库类型vector
下列vector对象的定义有不正确的吗?如果有,请指出来。对于正确的,描述其执行结果;对于不正确的,说明其错误的原因。
vector<vector<int>> ivec; // 在C++11当中合法
vector<string> svec = ivec; // 不合法,类型不一样
vector<string> svec(10, "null"); // 合法
下列的vector对象各包含多少个元素?这些元素的值分别是多少?
vector<int> v1; // size:0, no values.
vector<int> v2(10); // size:10, value:0
vector<int> v3(10, 42); // size:10, value:42
vector<int> v4{
10 }; // size:1, value:10
vector<int> v5{
10, 42 }; // size:2, value:10, 42
vector<string> v6{
10 }; // size:10, value:""
vector<string> v7{
10, "hi" }; // size:10, value:"hi"
3.3.3 其他vector操作
下面的程序合法吗?如果不合法,你准备如何修改? vector ivec; ivec[0] = 42;
不合法。应改为:ivec.push_back(42);
如果想定义一个含有10个元素的vector对象,所有元素的值都是42,请例举三种不同的实现方法,哪种方式更好呢?
如下三种:第一种最好
vector<int> ivec1(10, 42);
vector<int> ivec2{
42, 42, 42, 42, 42, 42, 42, 42, 42, 42 };
vector<int> ivec3;
for (int i = 0; i < 10; ++i)
ivec3.push_back(42);
边栏推荐
猜你喜欢
npm搭建私服,上传下载包
CuteOneP is a PHP-based OneDrive multi-network disk mount program with member synchronization and other functions
MySQL 免安装版/解压版的安装与配置(Win & Unix & Linux)
BUUCTF笔记(web)
Qt滚动条(QScrollBar)圆角样式问题跟踪
裸辞—躺平—刷题—大厂(Android面试的几大技巧)
Grammar Basics (Judgment Statements)
Mysql表数据在命令行窗口下中文乱码问题解决方法
vscode + ccls环境配置
语法基础(判断语句)
随机推荐
求问各位大佬,FLink SQL读取source的时候去指定水位线的时间字段,如果指定的这个字段中格
3. Transactions [mysql advanced]
CuteOneP 一款php的OneDrive多网盘挂载程序 带会员 同步等功能
Qt列表下方增加弹出加载数据提示效果
Everyone, the default configuration of oracle cdc occasionally takes 30 seconds to capture data. How to optimize this?
Reproduce dns out-band data combined with sqlmap
如何在VMlogin中设置YiLu代理?
BUUCTF笔记(web)
ES13 - ES2022 - The 123rd ECMA Congress approves the ECMAScript 2022 language specification
NetKeeper(创翼)开WIFI方法——2018.5
MySQL之InnoDB引擎(六)
UnityShader入门精要-unity shader基础
交换机的功能和ipv4
VS Code插件国际化
Why do games need hot updates
程序员的十楼层。看看自己在第几层。PS:我的目标是:30岁第四层
高级测试:如何使用Flink对Strom任务的逻辑功能进行复现测试?
Qt程序字体初始化引起的白屏问题
关于Qt高频率信号槽合并的误解和方案
XV6系统调用实现