C++ Primer: 实现指向字符串指针vector的输入与内容输出
需积分: 9 193 浏览量
更新于2024-10-16
收藏 491B TXT 举报
在C++ Primer 5.18的习题中,要求我们实现一个程序,它涉及到了C++的基本容器vector以及指针的使用。题目目标是定义一个vector对象,其中每个元素都是指向string类型的指针,然后读取这个vector中的内容,并输出每个string的内容及其对应的长度。
首先,我们从头开始理解这个任务。`#include`预处理器指令引入了所需的库,如`<iostream>`用于输入输出操作,`<string>`用于处理字符串,以及`<vector>`,这是C++标准库中的动态数组容器,用于存储同类型的数据。`using namespace std;`使得我们可以直接使用命名空间std中的成员函数和类型,简化代码。
在`main()`函数中,我们创建了一个名为`vector<string*> p`的变量,这是一个指向string指针的vector。接着,通过`while`循环,从标准输入(`cin`)读取字符串,将其转换为`string`类型,并用`new`关键字动态分配内存来创建一个新的`string`对象,将输入的字符串赋值给这个新对象。然后,我们将这个新指针`pstr`添加到vector `p`的末尾,通过`p.push_back(pstr)`实现。
接下来,我们遍历vector `p`,使用`vector<string*>::iterator iter = p.begin();`获取vector的迭代器,通过`*iter`解引用指针,访问并输出字符串内容(`cout << **iter`),以及通过`(**iter).size()`获取并输出字符串的长度。每次迭代,迭代器`iter`会自动递增,直到达到`p.end()`,即vector的末尾。
在输出完所有字符串及其长度后,为了释放之前动态分配的内存,防止内存泄漏,我们再次遍历vector,通过`delete *iter`删除每个指针指向的`string`对象,然后将`iter`递增。最后,`return 0;`表示程序正常结束。
总结来说,这段代码展示了如何在C++中使用vector容器存储指向string的指针,通过迭代器遍历并操作vector的内容,同时注意内存管理,确保资源的正确释放。这也是对C++基本数据结构和内存管理的一个实践应用。
127 浏览量
2018-11-11 上传
2023-05-23 上传
2023-07-13 上传
2023-11-07 上传
2023-03-17 上传
2023-11-10 上传
2023-07-25 上传
2023-08-05 上传
cxi_fighting
- 粉丝: 9
- 资源: 5
最新资源
- 天池大数据比赛:伪造人脸图像检测技术
- ADS1118数据手册中英文版合集
- Laravel 4/5包增强Eloquent模型本地化功能
- UCOSII 2.91版成功移植至STM8L平台
- 蓝色细线风格的PPT鱼骨图设计
- 基于Python的抖音舆情数据可视化分析系统
- C语言双人版游戏设计:别踩白块儿
- 创新色彩搭配的PPT鱼骨图设计展示
- SPICE公共代码库:综合资源管理
- 大气蓝灰配色PPT鱼骨图设计技巧
- 绿色风格四原因分析PPT鱼骨图设计
- 恺撒密码:古老而经典的替换加密技术解析
- C语言超市管理系统课程设计详细解析
- 深入分析:黑色因素的PPT鱼骨图应用
- 创新彩色圆点PPT鱼骨图制作与分析
- C语言课程设计:吃逗游戏源码分享