【C++ Primer Plus习题】17.7
问题:
解答:
#include <iostream>
#include <vector>
#include <string>
#include <fstream>
#include <algorithm>using namespace std;const int LIMIT = 50;void ShowStr(const string& str);
void GetStrs(ifstream& fin, vector<string>& v);class Store
{
private:string str;ofstream* fout;
public:Store(ofstream&out):fout(&out){}bool operator()(const string& str);~Store(){}
};void ShowStr(const string& str)
{cout << str << endl;
}
void GetStrs(ifstream& fin, vector<string>& v)
{unsigned int len;char* p;while (fin.read((char*)&len, sizeof len)){p = new char[len];fin.read(p,len);v.push_back(p);}
}bool Store::operator()(const string& str)
{unsigned int len = str.length();if (fout->is_open()){fout->write((char*)&len, sizeof len);fout->write(str.data(), len);return true;}else{return false;}
}int main()
{vector<string> vostr;string temp;cout << "Enter strings (empty line to quit):\n";while (getline(cin, temp) && temp[0] != '\0')vostr.push_back(temp);cout << "Here is your input.\n";for_each(vostr.begin(), vostr.end(),ShowStr);ofstream fout("strings.txt", ios_base::in | ios_base::binary);for_each(vostr.begin(), vostr.end(), Store(fout));fout.close();vector<string>vistr;ifstream fin("strings.txt", ios_base::in | ios_base::binary);if (!fin.is_open()){cerr << "Could not open the file for input.\n";exit(EXIT_FAILURE);}GetStrs(fin, vistr);cout << "\nHere are the strings read from the file:\n";for_each(vistr.begin(), vistr.end(), ShowStr);return 0;
}
拜了个拜!
相关文章:
【C++ Primer Plus习题】17.7
问题: 解答: #include <iostream> #include <vector> #include <string> #include <fstream> #include <algorithm>using namespace std;const int LIMIT 50;void ShowStr(const string& str); void GetStrs(ifstream& fin, vector<…...
vue3(整合版)
创建第一个vue项目 1.安装node.js cmd输入node查看是否安装成功 2.vscode开启一个终端,配置淘宝镜像 # 修改为淘宝镜像源 npm config set registry https://registry.npmmirror.com 输入如下命令创建第一个Vue项目 3.下载依赖,启动项目 访问5173端口 …...
复制他人 CSDN 文章到自己的博客
文章目录 0.前言步骤 0.前言 在复制别人文章发布时,记得表明转载哦 步骤 在需要复制的csdn 文章页面,打开浏览器开发者工具(F12)Ctrl F 查找"article_content"标签头 右键“Copy”->“Copy element”新建一个 tx…...
【算法——二分查找】
理论基础: 程序员面试经典题,二分搜索一个区间,区间查找 (LeetCode 34)_哔哩哔哩_bilibili 手把手带你撕出正确的二分法 | 二分查找法 | 二分搜索法 | LeetCode:704. 二分查找_哔哩哔哩_bilibili 这个是红蓝法,很牛…...
Cisco Packet Tracer的安装加汉化
这个工具学计算机网络的同学会用到 1.下载安装 网盘链接:https://pan.baidu.com/s/1CmnxAD9MkCtE7pc8Tjw0IA 提取码:frkb 点击第一个进行安装,按步骤来即可。 2.汉化 (1)复制chinese.ptl文件 (2&…...
MMain函数定义为WinMain函数看port1632.h和pwin32.h文件
编译win2k3的源代码的时候有时候看到MMain函数 ..//public/sdk/inc/port1632.h #if defined(WIN16) /* ---------------- Maps to windows 3.0 and 3.1 16-bit APIs ----------------*/ #include "ptypes16.h" #include "pwin16.h" #include "plan16.…...
单词搜索问题(涉及递归等)
目录 一题目: 二思路解释: 三解答代码: 一题目: newcode题目链接: 单词搜索_牛客题霸_牛客网 二思路解释: 思路:个人理解是找到word中的第一个元素,然后去递归的上下左右查找&am…...
Redis的一些通用指令
首先我们需要先连接客户端服务器,此时我们需要通过redis-cli和redis服务器进行交互,输入ping来确保通路的流畅 (一)get和set redis中最核心的两个命令就是get和set,get就是根据key来取出对应value,set就是把…...
C++中vector类的使用
目录 1.vector类常用接口说明 1.1默认成员函数 1.1.1构造函数(constructor) 1.1.2 赋值运算符重载(operator()) 2. vector对象的访问及遍历操作(Iterators and Element access) 3.vector类对象的容量操作(Capacity) 4. vector类对象的修改及相关操作(Modifiers and Stri…...
cmaklist流程控制——调试及发布
cmaklist流程控制 目前只会配置-编译调试-打包发布,并且不会workflow控制 后续学习配置-编译调试-测试-打包发布,workflow控制,理解整个流程,目前对流程控制理解也不够。 1.CMake Presets 先于Cmakelist文件,指导项…...
制作一个能对话能跳舞的otto机器人
OTTO机器人是一个开源外壳,硬件和软件的桌面机器人项目,非常适合新手研究和拓展。记住,他是一个能移动有表情能声音的机器人。 b站有很多演示和组装的视频,我就不多说了,照着做就好,因为硬件我也是刚入门&…...
git配置SSH
1 打开cmd窗口 2 在窗口中输入如下命令: 配置用户名: git config --global user.name “gyk” 配置邮箱: git config --global user.email “247929163qq.com” 继续在Git命令窗口中输入如下命令,即可生成SSH公钥和私钥 ss…...
mozilla/pdf.js view.html加载指定页码
mozilla/pdf.js view.html加载指定页码 在Mozilla’s PDF.js中,如果你想要在viewer.html加载时直接跳转到指定的页码,你可以通过修改URL来实现。 PDF.js使用查询参数来处理URL,其中page参数用于指定页码。你可以通过修改URL的查询字符串来设…...
Qt之QFuture理解
结构 #mermaid-svg-J9J683RG8QjtEqoM {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-J9J683RG8QjtEqoM .error-icon{fill:#552222;}#mermaid-svg-J9J683RG8QjtEqoM .error-text{fill:#552222;stroke:#552222;}#merm…...
求二叉树的高度(递归和非递归)
假设二叉树采用二叉链表存储结构,设计一个算法求二叉树的高度。 递归: int getTreeHight(BiTree T){if(TNULL){return 0;}else {int lh getTreeHight(T->lchild);int rh getTreeHight(T->rchild);return (lh>rh?lh:rh)1;}}时间复杂度O(n)&a…...
Java查找算法——(四)分块查找(完整详解,附有代码+案例)
文章目录 分块查找1.1普通分块查找 分块查找 1.1普通分块查找 分块原则: 块内无序,块间有序:前一块中的最大数据,小于后一块中所有的数据,块与块之间不能有数据重复的交集。块的数量一般等于数字个数开根号 核心思路ÿ…...
进制数知识(2)—— 浮点数在内存中的存储 和 易混淆的二进制知识总结
目录 1. 浮点数在内存中的存储 1.1 浮点数的大V表示法 1.2 浮点数的存储格式 1.3 浮点数的存入规则 1.4 浮点数的读取规则 1.5 补充:移码与掩码 1.6 题目解析 2. 易错的二进制知识 2.0 符号位到底会不会参与运算? 2.0.1 存储前的编码变化运算 …...
类似QQ聊天功能的Java程序
实现一个类似QQ聊天功能的Java程序需要考虑以下几个关键点: 用户界面:用于展示消息和输入消息。网络通信:用于客户端之间的信息传输。用户管理:用于管理用户的登录、注册和状态。消息存储:用于存储聊天记录。 这里提…...
Redis 键值对数据库学习
目录 一、介绍 二、安装以及连接 三、设置连接密码 四、连接报错 五、redis 操作字符串以及过期时间 六、 redis 列表操作 七、redis 集合操作 八、hash 哈希操作 九、redis 发布和订阅操作 十、RDB和AOF的两种数据持久化机制 十一、 其他机器连接redis 十二、 pyt…...
逆向推理+ChatGPT,让论文更具说服力
学境思源,一键生成论文初稿: AcademicIdeas - 学境思源AI论文写作 使用ChatGPT辅助“逆向推理”技巧,可以显著提升论文的质量和说服力。逆向推理从结论出发,倒推所需的证据和论点,确保整个论证过程逻辑严密且无漏洞。…...
2026年AI产品经理终极指南:零基础到精通,一篇文章掌握全部!AI产品经理学习路线!
成为一名优秀的AI产品经理不仅需要掌握相关的技术知识,还需要具备良好的产品思维、市场洞察力以及跨部门沟通协调能力。下面是一个详细的AI产品经理学习路线,旨在帮助有志于从事该职业的人士快速成长。 AI产品经理的学习路线 第一阶段:基础…...
第 11 章 追踪与性能分析(OpenOCD)
第 11 章 追踪与性能分析 导读:现代 ARM 处理器内置了丰富的 CoreSight 追踪基础设施,包括 ETM 指令追踪、ITM/DWT 数据追踪、SWO/TPIU 追踪输出以及 SEGGER RTT 高速日志。本章将系统介绍如何在 OpenOCD 中配置和使用这些追踪功能,帮助开发者在不侵入目标程序的前提下,完成…...
三行六列16车位立体车库mcgs6.2仿真程序
三行六列16车位立体车库mcgs6.2仿真程序立体车库仿真程序最让人上头的就是运动逻辑设计。今天拆解一个三行六列布局的MCGS6.2项目,看看如何用脚本驱动16个车位的升降动画。注意这里的车位排布有点特殊——虽然看起来是3*6的矩阵,但实际有两处隐藏车位被改…...
在给ppt接入扣子空间(Ai)/智能体,新玩法10分钟搞定说课,公开课AI互动!
做 PPT 时,你是否遇到过这些痛点:演讲中观众突然提问,临时组织语言容易逻辑混乱;同一问题被反复询问,浪费演示时间;静态页面无法按需补充细节,信息传递不精准。而扣子空间(Coze&…...
别再只用交叉熵了!医疗AI中疾病分级任务,试试PyTorch实现这个序数回归损失函数
医疗AI中的序数回归:超越交叉熵的疾病分级新范式 在医疗人工智能领域,我们经常遇到需要预测疾病严重程度分级的任务——从轻度到中度再到重度,这些类别之间存在明确的递进关系。传统做法是直接套用交叉熵损失函数,但这就像用尺子测…...
AMD显卡也能玩转GPU编程?ROCm环境搭建与OpenCL入门避坑指南
AMD显卡也能玩转GPU编程?ROCm环境搭建与OpenCL入门避坑指南 在GPU计算领域,NVIDIA的CUDA生态长期占据主导地位,但AMD显卡用户同样拥有强大的并行计算选择。本文将带你探索AMD ROCm平台的完整搭建流程,并深入OpenCL编程的核心技巧&…...
async-http-client原生镜像大小优化:GraalVM裁剪终极指南 [特殊字符]
async-http-client原生镜像大小优化:GraalVM裁剪终极指南 🚀 【免费下载链接】async-http-client Asynchronous Http and WebSocket Client library for Java 项目地址: https://gitcode.com/gh_mirrors/as/async-http-client 在当今云原生和微服…...
SQL入门学习笔记
一、一些必备“常识” 数据库是指任何相关信息得集合,可以用不同的方式存储。(如:电话簿,购物清单) 两种主要的数据库类型:关系型数据库(SQL)例如mysql,postgresql(pg)与非关系型数据库(NoSQL)例如mogodb…...
解决Windows端口转发难题:PortProxyGUI的可视化管理方案
解决Windows端口转发难题:PortProxyGUI的可视化管理方案 【免费下载链接】PortProxyGUI A manager of netsh interface portproxy which is to evaluate TCP/IP port redirect on windows. 项目地址: https://gitcode.com/gh_mirrors/po/PortProxyGUI 在网络…...
自动驾驶轨迹预测新思路:VectorNet如何用矢量编码替代传统栅格化方法?
自动驾驶轨迹预测的矢量革命:VectorNet如何重构环境编码范式 在自动驾驶系统的决策闭环中,轨迹预测模块犹如驾驶员的预判能力,其准确性直接关系到行车安全与舒适性。传统基于卷积神经网络(CNN)的预测方法存在一个根本性…...

