EX_25/2/22
找到第一天mystring练习,实现以下功能
mystring str = "hello"
mystring ptr = "world"
str = str + ptr;
str += ptr
str[0] = 'H'
#include <iostream>
#include <cstring>
#include <cstdlib>
#include <unistd.h>
#include <sstream>
#include <vector>
#include <memory>using namespace std;class Data {
private:char* p;int len;public:Data();Data(const char* str);Data(const Data& other);~Data();void copy(const Data& str);void append(const Data& str);void show() const;bool compare(const Data& n) const;void swap(Data& n);Data operator+(const Data& other) const;Data& operator+=(const Data& other);char& operator[](int n);Data& operator=(const Data& other);
};Data::Data() {p = NULL;len = 0;
}Data::Data(const char* str) {len = strlen(str);p = (char*)malloc(len + 1);strcpy(p, str);
}Data::Data(const Data& other) {len = other.len;p = (char*)malloc(len + 1);strcpy(p, other.p);
}Data::~Data() {if (p != NULL) { free(p); }
}void Data::copy(const Data& str) {if (p != NULL) { free(p); }len = str.len;p = (char*)malloc(len + 1);strcpy(p, str.p);
}void Data::append(const Data& str) {len = len + str.len;char* backup = p;p = (char*)calloc(1, len + 1);strcpy(p, backup);strcat(p, str.p);free(backup);
}void Data::show() const {cout << p << endl;
}bool Data::compare(const Data& n) const {return strcmp(p, n.p) == 0;
}void Data::swap(Data& n) {char* temp = p;p = n.p;n.p = temp;
}Data Data::operator+(const Data& other) const {Data result;result.len = len + other.len;result.p = (char*)malloc(result.len + 1);strcpy(result.p, p);strcat(result.p, other.p);return result;
}Data& Data::operator+=(const Data& other) {len += other.len;char* backup = p;p = (char*)calloc(1, len + 1);strcpy(p, backup);strcat(p, other.p);free(backup);return *this;
}char& Data::operator[](int n) {return p[n];
}Data& Data::operator=(const Data& other) {if (this == &other) return *this;if (p != NULL) { free(p); }len = other.len;p = (char*)malloc(len + 1);strcpy(p, other.p);return *this;
}int main(int argc, const char** argv) {Data str = "hello";Data ptr = "world";Data combined = str + ptr;combined.show();str += ptr;str.show();str[0] = 'H';str.show();if (str.compare(ptr)) {cout << "str 和 ptr 一样" << endl;} else {cout << "str 和 ptr 不一样" << endl;}str.swap(ptr);str.show();ptr.show();return 0;
}
封装消息队列
class Msg{
key_t key
int id;
int channel }
实现以下功能
Msg m("文件名")
m[1].send("数据"),
将数据发送到1号频道中 string str = m[1].read(int size) 从1号频道中读取消息,并且返回
#include <sys/types.h>
#include <iostream>
#include <string>
#include <cstring>
#include <sys/ipc.h>
#include <sys/msg.h>using namespace std;class Msg {
public:Msg(const string& filename) {key = ftok(filename.data(), 'A');id = msgget(key, 0666 | IPC_CREAT);}void send(int n, const string& text) {msgbuf buf{n, {}};strncpy(buf.text, text.data(), sizeof(buf.text));msgsnd(id, &buf, strlen(buf.text) + 1, 0);}string read(int n) {msgbuf buf{};msgrcv(id, &buf, sizeof(buf.text), n, 0);return string(buf.text);}private:key_t key;int id;struct msgbuf {long n;char text[1024];};
};int main() {Msg m("msgfile");m.send(1, "hello, channel 1!");string msg = m.read(1);cout << msg << endl;return 0;
}
相关文章:
EX_25/2/22
找到第一天mystring练习,实现以下功能 mystring str "hello" mystring ptr "world" str str ptr; str ptr str[0] H #include <iostream> #include <cstring> #include <cstdlib> #include <unistd.h> #in…...
rust安装教程以及git连接到远程仓库
1.官方网站下载rustup-init程序 链接: rust-lang 从这里可以获取到rust的下载程序,这个下载程序会帮助你下载visual-studio的安装包从而获取相关的编译环境。 tips:无需再下载visual_studio 2确认安装所需要的框架,SKD工具 安装完毕之后可以检查一下 rustc --ve…...
Kafka系列之:记录一次源头数据库刷数据,造成数据丢失的原因
Kafka系列之:记录一次源头数据库刷数据,造成数据丢失的原因 一、背景二、查看topic日志信息三、结论四、解决方法一、背景 源头数据库在很短的时间内刷了大量的数据,部分数据在hdfs丢失了 理论上debezium数据采集不会丢失,就需要排查数据链路某个节点是否有数据丢失。 数据…...
VC++零基础入门之系列教程 【附录E MFC快速参考指南】
附录E MFC快速参考指南 E.1 创建窗口 使用M F C CWnd wnd; W n d . C r e a t e E x ( E xSt y l e , C l a s s N a m e , Wi n d o w N a m e , S t y l e , x , y, Wi d t h , H e i g h t , P a r e n t , M e n u , P a r a m ) ; 使用A P I HWND hwnd=::CreateWi n d …...
在CentOS 7下部署NFS的详细教程
在CentOS 7下部署NFS的详细教程 NFS(Network File System)是一种分布式文件系统协议,允许用户在网络中的不同主机之间共享文件和目录。NFS广泛应用于Linux和Unix系统中,特别适合在集群环境中共享存储资源。本文将详细介绍如何在C…...
LabVIEW C编译支持工具库CCompileSupp.llb
路径:C:\Program Files (x86)\National Instruments\LabVIEW 2019\vi.lib\Platform\CCompileSupp.llb 1. 工具库概述 定位:LabVIEW内置的C语言编译支持工具库,用于处理LabVIEW与C/C代码的混合编程接口,涵盖编译器配置、代码生成…...
【含文档+PPT+源码】基于微信小程序的农产品自主供销商城系统
项目介绍 本课程演示的是一款基于微信小程序的农产品自主供销商城系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的 Java 学习者。 1.包含:项目源码、项目文档、数据库脚本、软件工具等所有资料 2.带你从零开始部署运行本套系统 3…...
MongoDB私人学习笔记
俗话说“好记性不如烂笔头”,编程的海洋如此的浩大,养成做笔记的习惯是成功的一步! 此笔记主要是ZooKeeper3.4.9版本的笔记,并且笔记都是博主自己一字一字编写和记录,有错误的地方欢迎大家指正。 一、基础知识…...
C++---了解STL
上节学习了模板,那么就得谈到C的标准模板库STL。 C98:以模板方式重写了C标准库,引入了STL(标准模板库)。 1.概念 STL(Standard template Libarary)标准模板库:是C标准库的重要组成部分,不仅是一个可复用的组件库&am…...
智能自动化新纪元:AI与UiPath RPA的协同应用场景与技术实践
智能自动化新纪元:AI与UiPath RPA的协同应用场景与技术实践 引言 在数字化转型的浪潮中,企业对于自动化技术的需求已从简单的任务执行转向更复杂的智能决策。传统RPA(Robotic Process Automation)通过模拟人类操作处理重复性任务…...
2025年2月科技热点深度解析:AI竞赛、量子突破与开源革命
引言 2025年的科技领域持续呈现爆发式增长,AI大模型竞争白热化、量子计算商业化加速、开源工具生态繁荣成为本月最受关注的议题。本文结合最新行业动态,从技术突破、商业布局到开发者生态,全面解析当前科技热点,为读者提供深度洞…...
计算机网络————(三)
前文二 前文一 Websocket协议 是一种存在TCP协议之上的协议 当客户端需要了解服务器是否更新就需要不断给客户端发送请求询问是否更新,这行会造成服务端压力很大 而Websocket相当于服务器一旦更新了就会给客户端发送消息表明自己更新了,类似客户端订阅…...
请谈谈 React 中的状态管理,如何使用 Context API 和 Redux 进行状态管理?
一、Context API 深度应用 1. 核心实现原理 通过createContext创建上下文对象,使用Provider组件包裹需要共享状态的组件树,子组件通过useContext Hook或Consumer组件消费数据。 代码示例(主题切换场景): // 创建上…...
【考研】复试相关上机题目
文章目录 22机试回忆版1、判断燃气费描述输入格式输出格式输入样例输出样例 C o d e Code Code 2、统计闰年数量描述输入格式输出格式输入样例输出样例 C o d e Code Code 3、打印图形描述输入格式输出格式 C o d e Code Code 4、密文数据描述输入格式输出格式输入样例输出样例…...
利用机器学习实现实时交易欺诈检测
以下是一个基于Python的银行反欺诈AI应用示例代码,演示如何利用机器学习实现实时交易欺诈检测。该示例使用LightGBM算法训练模型,并通过Flask框架构建实时检测API: python import pandas as pd from sklearn.model_selection import train_test_split from sklearn.preproc…...
Modelfile配置说明
参数说明翻译 参数描述值类型示例用法mirostat启用Mirostat采样以控制困惑度。(默认:0,0禁用,1Mirostat,2Mirostat 2.0)intmirostat 0mirostat_eta影响算法对生成文本反馈的响应速度。较低的学习率将导致调…...
labview实现有符号位16进制转二进制补码转真值
今天在用一个采集模块时,发现读出寄存器的数据是不同的,它有两种范围,一个时十六进制整型,一种是有符号位十六进制,对应的量程和范围也是不同的,针对之前读取温度没有出现负数的情况,应该是转成…...
浏览器深度解析:打造极速、安全、个性化的上网新体验
在数字化时代,浏览器作为我们获取信息、娱乐休闲的重要工具,其性能与功能直接影响着我们的上网体验。今天,我将为大家介绍一款备受好评的浏览器——Yandex浏览器,并深入解析其独特功能与优势,帮助大家更好地了解并选择这款上网神器。 一、知名公司背书,开源项目融合 Yan…...
JavaScript 简单类型与复杂类型-堆和栈
深入理解JavaScript中的简单类型(基本数据类型)与复杂类型(引用数据类型)如何在内存中存储对于编写高效、无误的代码至关重要。本文将探讨这两种类型的差异,以及它们在内存中的存储机制——栈(Stack&#x…...
【AI+智造】DeepSeek价值重构:当采购与物控遇上数字化转型的化学反应
作者:Odoo技术开发/资深信息化负责人 日期:2025年2月24日 引言:从事企业信息化工作16年,我见证过无数企业从手工台账到ERP系统的跨越。但真正让采购和物控部门脱胎换骨的,是融合了Deepseek AI的Odoo数字化解决方案——…...
Android Wi-Fi 连接失败日志分析
1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分: 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析: CTR…...
STM32+rt-thread判断是否联网
一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...
聊聊 Pulsar:Producer 源码解析
一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台,以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中,Producer(生产者) 是连接客户端应用与消息队列的第一步。生产者…...
【机器视觉】单目测距——运动结构恢复
ps:图是随便找的,为了凑个封面 前言 在前面对光流法进行进一步改进,希望将2D光流推广至3D场景流时,发现2D转3D过程中存在尺度歧义问题,需要补全摄像头拍摄图像中缺失的深度信息,否则解空间不收敛…...
新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案
随着新能源汽车的快速普及,充电桩作为核心配套设施,其安全性与可靠性备受关注。然而,在高温、高负荷运行环境下,充电桩的散热问题与消防安全隐患日益凸显,成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...
【HTML-16】深入理解HTML中的块元素与行内元素
HTML元素根据其显示特性可以分为两大类:块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...
智能AI电话机器人系统的识别能力现状与发展水平
一、引言 随着人工智能技术的飞速发展,AI电话机器人系统已经从简单的自动应答工具演变为具备复杂交互能力的智能助手。这类系统结合了语音识别、自然语言处理、情感计算和机器学习等多项前沿技术,在客户服务、营销推广、信息查询等领域发挥着越来越重要…...
无人机侦测与反制技术的进展与应用
国家电网无人机侦测与反制技术的进展与应用 引言 随着无人机(无人驾驶飞行器,UAV)技术的快速发展,其在商业、娱乐和军事领域的广泛应用带来了新的安全挑战。特别是对于关键基础设施如电力系统,无人机的“黑飞”&…...
【Linux】Linux 系统默认的目录及作用说明
博主介绍:✌全网粉丝23W,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...
宇树科技,改名了!
提到国内具身智能和机器人领域的代表企业,那宇树科技(Unitree)必须名列其榜。 最近,宇树科技的一项新变动消息在业界引发了不少关注和讨论,即: 宇树向其合作伙伴发布了一封公司名称变更函称,因…...
