C++ //练习 14.28 为你的StrBlobPtr类添加加法和减法运算符,使其可以实现指针的算术运算(参见3.5.3节,第106页)。

C++ Primer(第5版) 练习 14.28

练习 14.28 为你的StrBlobPtr类添加加法和减法运算符,使其可以实现指针的算术运算(参见3.5.3节,第106页)。

环境:Linux Ubuntu(云服务器)
工具:vim

 

代码块
class StrBlobPtr{
    public:
    StrBlobPtr(): curr(0) {}
    StrBlobPtr(StrBlob &s, size_t sz = 0): wptr(s.data), curr(sz) {}
    string &deref() const;
    StrBlobPtr &incr();

	StrBlobPtr operator+(StrBlobPtr &sbp, std::size_t n);
	StrBlobPtr operator-(StrBlobPtr &sbp, std::size_t n);
		
    private:
    shared_ptr<vector<string>> check(size_t, const string &) const;
    weak_ptr<vector<string>> wptr;
    size_t curr;
};

StrBlobPtr StrBlobPtr::operator+(StrBlobPtr &sbp, std::size_t n){
	StrBlobPtr ret = *this;
	ret += n;
	return ret;
}
StrBlobPtr StrBlobPtr::operator-(StrBlobPtr &sbp, std::size_t n){
	StrBlobPtr ret = *this;
	ret -= n;
	return ret;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/766457.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Python】已解决:ERROR: No matching distribution found for JPype1

文章目录 一、分析问题背景二、可能出错的原因三、错误代码示例四、正确代码示例五、注意事项 已解决&#xff1a;ERROR: No matching distribution found for JPype1 一、分析问题背景 在安装Python的第三方库时&#xff0c;有时会遇到“ERROR: No matching distribution fo…

金融科技在反洗钱领域的创新应用

随着金融市场的不断发展和全球化趋势的加速&#xff0c;洗钱活动日益猖獗&#xff0c;给金融机构和社会经济安全带来了严重威胁。为了有效应对这一挑战&#xff0c;金融科技在反洗钱领域的应用逐渐崭露头角&#xff0c;为打击洗钱活动提供了强有力的技术支持。本文将从多个角度…

Python编写简单爬虫

文章目录 Python编写简单爬虫安装必要的库编写爬虫代码解析和存储数据注意事项 Python编写简单爬虫 安装必要的库 在开始编写爬虫之前&#xff0c;你需要安装一些必要的库。我们将使用requests库来发送HTTP请求&#xff0c;使用BeautifulSoup库来解析HTML内容。你可以使用以下…

气象观测站应设置在何处:选址的科学与策略

气象观测站在现代社会中扮演着至关重要的角色&#xff0c;它们不仅是气象数据的收集中心&#xff0c;也是气象预报和灾害预警的基础。然而&#xff0c;一个成功的气象观测站&#xff0c;其选址并不是随意的&#xff0c;而是需要综合考虑多种因素&#xff0c;以确保数据的准确性…

文章解读与仿真程序复现思路——电力系统自动化EI\CSCD\北大核心《面向电网调峰的电动汽车聚合商多层级实时控制策略》

本专栏栏目提供文章与程序复现思路&#xff0c;具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…

编译调试swift5.7源码

环境&#xff1a; 电脑&#xff1a;apple m1 pro系统&#xff1a;macOS13Xcode: 14.2Cmake: 3.25.1Ninja: 1.11.1sccache: 0.3.3python: 3.10 (如果你的mac不是这个版本&#xff0c;可以通过 brew install python3.10下载&#xff0c;然后看这篇文章切换到该python版本)swift代…

SQL语言基础特点、数据库系统

一、SQL的概述 &#xff08;1&#xff09; SQL全称&#xff1a; Structured Query Language&#xff0c;是结构化查询语言&#xff0c;用于访问和处理数据库的标准的计算机语言。 &#xff08;2&#xff09;SQL语言1974年由Boyce和Chamberlin提出&#xff0c;并首先在IBM公…

Ubuntu20.04 有线网络图标消失解决方案

Ubuntu20.04 有线网络图标消失解决方案 问题描述&#xff1a; ubuntu20.04系统提示的software updater有软件包更新&#xff0c;按提示安装更新软件包&#xff0c;重启系统后&#xff0c;ubuntu系统的网络图标消失不见&#xff1b;无法正常上网&#xff1b;检查网口&#xff0…

llm学习-4(llm和langchain)

langchain说明文档&#xff1a;langchain 0.2.6 — &#x1f99c;&#x1f517; langChain 0.2.6https://api.python.langchain.com/en/latest/langchain_api_reference.html#module-langchain.chat_models 1&#xff1a;模型 &#xff08;1&#xff09;自定义模型导入&#x…

计算机网络网络层复习题1

一. 单选题&#xff08;共27题&#xff09; 1. (单选题)以太网 MAC 地址、IPv4 地址、IPv6 地址的地址空间大小分别是&#xff08; &#xff09;。 A. 2^48&#xff0c;2^32&#xff0c;2^128B. 2^32&#xff0c;2^32&#xff0c;2^96C. 2^16&#xff0c;2^56&#xff0c;2^6…

SpringCloud基础篇

文章目录 创建新模块拷贝yml配置文件修改配置文件的信息修改pom.xml文件启动入口拷贝相关文件接口文档配置配置启动项注册中心原理Nacos注册中心创建nacos数据库存储数据部署nacos在docker容器中 服务注册引入依赖配置Nacos地址启动 服务发现(调用)引入依赖配置nacos地址发现并…

OK527N-C开发板-简单的性能测试

OK527N-C CoreMark 获取CoreMark源码 首先使用Git克隆仓库&#xff1a; git clone https://github.com/eembc/coremark.git cd coremark修改Makefile 首先复制文件夹 cp -rf posix ok527之后修改ok527文件夹下的core_portme.mak文件&#xff0c;将CC修改如下 CC aarch6…

全国1:100万地貌类型空间分布数据

我们在《136G全国1m土地覆盖数据》一文中&#xff0c;为你分享了全国1米分辨率的土地覆盖数据。 现在再为你分享全国1:100万地貌类型空间分布数据&#xff0c;你可以在文末查看该数据的领取方式。 全国1:100万地貌类型空间分布数据 全国1:100万地貌类型空间分布数据来源于《…

【QT】多元素控件

目录 概述 List Widget 核心属性 核心方法 核心信号 QListWidgetItem核心方法 Table Widget 核心方法 QTableWidgetItem 核心信号 QTableWidgetItem 核心方法 使用示例&#xff1a; Tree Widget 核心方法 核心信号 QTreeWidgetItem核心属性 QTreeWidgetItem核…

(九)绘制彩色三角形

前面的学习中并未涉及到颜色&#xff0c;现在打算写一个例子&#xff0c;在顶点着色器和片元着色器中加入颜色&#xff0c;绘制有颜色的三角形。 #include <glad/glad.h>//glad必须在glfw头文件之前包含 #include <GLFW/glfw3.h> #include <iostream>void …

13-4 GPT-5:博士级AI,人工智能的新时代

图片来源&#xff1a;AI Disruptive 人工智能世界正在迅速发展&#xff0c;新的创新和突破层出不穷。在本文中&#xff0c;我们将深入探讨最新的进展&#xff0c;从即将推出的 GPT-5 模型到 Apple 和 Meta 之间可能的合作。 GPT-5&#xff1a;博士级别的人工智能 虽然尚未正…

GL823K USB 2.0 SD/MSPRO读卡器控制芯片

概述 GL823K是一个USB 2.0单轮读卡器控制芯片&#xff0c;可以支持SD/MMC/MSPRO闪存卡。它支持USB 2.0高速传输&#xff0c;它在一个芯片上可以控制读取诸如安全数字卡&#xff08;SD卡&#xff09;&#xff0c;SDHC卡&#xff0c;迷你SD卡&#xff0c;微SD卡&#xff08;T-Fl…

Upload-Labs靶场闯关

文章目录 Pass-01Pass-02Pass-03Pass-04Pass-05Pass-06Pass-07Pass-08Pass-09Pass-10Pass-11Pass-12Pass-13Pass-14Pass-15Pass-16Pass-17Pass-18Pass-19Pass-20 以下是文件上传绕过的各种思路&#xff0c;不过是鄙人做题记下来的一些思路笔记罢了。 GitHub靶场环境下载&#x…

带电池监控功能的恒流直流负载组

EAK的交流和直流工业电池负载组测试仪对于测试和验证关键电力系统的能力至关重要&#xff0c;旨在实现最佳精度。作为一家客户至上的公司&#xff0c;我们继续尽我们所能应对供应链挑战&#xff0c;以提供出色的交货时间&#xff0c;大约是行业其他公司的一半。 交流负载组 我…

嵌入式c语言2——预处理

在c语言中&#xff0c;头部内容&#xff0c;如include与define是不参与编译而直接预先处理的 如include相当于把头文件扩展&#xff0c;define相当于做了替换 c语言大型工程创建时&#xff0c;会有调试版本与发行版本&#xff0c;发行时不希望看到调试部分内容&#xff0c;此时…