c++作业

练习题:

#include <iostream>
#include <cstring>
using namespace std;class mystring
{char* p;int len;
public:mystring();mystring(const char* p);~mystring();void copy(const mystring& str);void append(const mystring& str);void show();bool compare(const mystring& str);void swap(mystring& str);
};mystring::mystring():p(NULL),len(0)
{}mystring::mystring(const char* p)
{len = strlen(p);this->p = new char[len];strcpy(this->p,p);
}mystring::~mystring()
{if(p != NULL){delete[] p;}
}void mystring::copy(const mystring& str)
{if(p != NULL){delete[] p;}len = strlen(str.p);p = new char[len];strcpy(p,str.p);
}void mystring::append(const mystring& str)
{len = len + str.len;char* temp = p;p = new char[len];strcpy(p,temp);strcat(p,str.p);delete[] temp;
}void mystring::show()
{cout<< p << endl;
}bool mystring::compare(const mystring& str)
{return strcmp(p,str.p) == 0;
}void mystring::swap(mystring& str)
{char* temp = p;p = str.p;str.p = temp;
}int main()
{mystring str = "hello";mystring ptr;ptr.copy(str);ptr.show();ptr.append(str);ptr.show();if(ptr.compare(str) == true){cout <<"一样"<<endl;}else{cout <<"不一样"<<endl;}ptr.swap(str);ptr.show();str.show();return 0;
}

第一题

#include <iostream>
#include <cstring>
using namespace std;
class myFile
{
private:FILE* fp;
public:myFile(const char* file);~myFile();void mywrite(string str);string myread(int size);
};myFile::myFile(const char* file)
{//fp = fopen(file,"a+");fp = fopen(file,"w+");if(fp == NULL){cout << "文件不存在" <<endl;return;}
}myFile::~myFile()
{fclose(fp);
}void myFile::mywrite(const string str)
{const char* p = str.data();printf("%s\n",p);if(fwrite(p,strlen(p),1,fp)==0){cout << "写入失败" << endl;}
}string myFile::myread(int size)
{char buf[size+1] = "";fseek(fp,0,SEEK_SET);if(fread(buf,size,1,fp) == 0){cout << "读取失败"<<endl;}
//	printf("%s\n",buf);string p = buf;return p; 
}int main()
{myFile txt = "./File.txt";txt.mywrite("1234567123455");string buf = txt.myread(10);cout << buf <<endl;return 0;
}

第二题

#include <iostream>
#include <pthread.h>
#include <unistd.h>
using namespace std;enum kinds_mutex
{MUTEX_FAST,MUTEX_CHECK,MUTEX_RECURSION
};class Mutex
{private:pthread_mutex_t mu;enum kinds_mutex kinds;public:Mutex();void setMutex(enum kinds_mutex kinds);~Mutex();void lock();void unlock();
};Mutex::Mutex()
{pthread_mutex_init(&mu,NULL);
}void Mutex::setMutex(enum kinds_mutex kinds)
{switch(kinds){case MUTEX_FAST:{pthread_mutex_init(&mu,NULL);break;}case MUTEX_CHECK:{pthread_mutexattr_t attr;pthread_mutexattr_init(&attr);pthread_mutexattr_settype(&attr,PTHREAD_MUTEX_ERRORCHECK_NP);pthread_mutex_init(&mu,&attr);break;}case MUTEX_RECURSION:{pthread_mutexattr_t attr;pthread_mutexattr_init(&attr);pthread_mutexattr_settype(&attr,PTHREAD_MUTEX_RECURSIVE_NP);pthread_mutex_init(&mu,&attr);break;}}
}Mutex::~Mutex()
{pthread_mutex_destroy(&mu);
}void Mutex::lock()
{pthread_mutex_lock(&mu);
}void Mutex::unlock()
{pthread_mutex_unlock(&mu);
}Mutex m1,m2;void* pthread_main(void* arg)
{while(1){m2.lock();cout << "线程2"<<endl;sleep(1);m1.unlock();}
}int main()
{pthread_t id;m1.setMutex(MUTEX_FAST);m2.setMutex(MUTEX_FAST);m2.lock();pthread_create(&id,0,pthread_main,NULL);pthread_detach(id);while(1){m1.lock();cout<<"线程1"<<endl;sleep(1);m2.unlock();}return 0;
}

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网络爬虫学习:借助DeepSeek完善爬虫软件,实现模拟鼠标右键点击,将链接另存为本地文件

一、前言 最近几个月里&#xff0c;我一直在学习网络爬虫方面的知识&#xff0c;每有收获都会将所得整理成文发布&#xff0c;不知不觉已经发了7篇日志了&#xff1a; 网络爬虫学习&#xff1a;从百度搜索结果抓取标题、链接、内容&#xff0c;并保存到xlsx文件中 网络爬虫学…

leetcode203.移除链表元素

目录 问题描述示例提示 具体思路思路一思路二 代码实现 问题描述 给你一个链表的头节点 head 和一个整数 val &#xff0c;请你删除链表中所有满足 Node.val val 的节点&#xff0c;并返回 新的头节点 。 题目链接&#xff1a;移除链表元素 示例 提示 列表中的节点数目在范围…

全球直播新标杆:DeepSeek融合全平台AI无人直播,构建直播流量永动机!

全球直播新标杆&#xff1a;DeepSeek融合全平台AI无人直播&#xff0c;构建直播流量永动机&#xff01; 在科技日新月异的今天&#xff0c;直播行业正经历一场前所未有的变革。在这场变革中&#xff0c;DeepSeek凭借其创新的AI无人直播系统&#xff0c;正逐步树立起全球直播的新…

postgres源码学习之简单sql查询

postgres源码学习之sql查询 sql查询的主流程读取sql解析sql重写sql获得执行计划执行查询操作结果返回 sql查询的主流程 参考postgres的处理流程 由上一节&#xff0c;我们可以看到&#xff0c;当有新的连接通过权限认证之后&#xff0c;将进入等待接收sql语句&#xff0c;并执…

【AI实践】阿里百炼文本对话Agent安卓版搭建

环境&#xff1a;安卓手机运行环境&#xff1b;WinsurfAI编程工具&#xff1b;阿里百炼提前创建Agent应用&#xff1b; 耗时&#xff1a;2小时&#xff1b; 1&#xff0c;新建安卓项目 完成文本输入&#xff0c;并将输入的文字显示出来。 2&#xff0c;安装SDK 参考文档 安…

[论文阅读] SeeSR: Towards Semantics-Aware Real-World Image Super-Resolution

文章目录 一、前言二、主要贡献三、Introduction四、Methodology4.1 Motivation &#xff1a;4.2Framework Overview.** 一、前言 通信作者是香港理工大学 & OPPO研究所的张磊教授&#xff0c;也是图像超分ISR的一个大牛了。 论文如下 SeeSR: Towards Semantics-Aware Rea…

探秘 DeepSeek R1 模型:跨越多领域的科技奇迹,引领智能应用新浪潮

DeepSeek R1 模型功能强大&#xff0c;应用广泛。在自然语言处理、计算机视觉、推荐系统和医疗等领域都能发挥作用。本文介绍了其在各领域的应用场景和代码示例&#xff0c;助你深入了解它。 目录 ​编辑 一、本篇背景&#xff1a; 二、DeepSeek R1 模型概述&#xff1a; …

常用网络工具分析(ping,tcpdump等)

写在前面 本文看下常用网络工具。 1&#xff1a;ping 1.1&#xff1a;用途 用于检验网络的连通性。 1.2&#xff1a;实战 在Linux环境中执行&#xff1a;ping www.sina.com.cn&#xff1a; [rootlocalhost ~]# ping www.sina.com.cn PING spool.grid.sinaedge.com (111.…

【MySQL】表操作

表操作 一、创建表 1、语句2、语句介绍3、注意事项4、介绍5、示例 二、查看表结构 1、语句2、介绍3、返回的信息4、示例 三、添加字段 1、语句2、语句介绍3、示例 四、修改 1、语句2、语句介绍3、示例 五、删除 1、语句2、示例 六、修改表名 1、语句2、语句介绍3、示例 七、删…

【UCB CS 61B SP24】Lecture 3 - Lists 1: References, Recursion, and Lists学习笔记

本文开坑伯克利 CS 61B&#xff08;算法与数据结构&#xff09;2024年春季课程学习笔记&#xff0c;Lecture 1 & Lecture 2 的内容为课程介绍与 Java 基础&#xff0c;因此直接跳过。本文内容为介绍基本数据类型与引用数据类型的区别&#xff0c;以及手动实现整数列表。 1…

【C语言】fwrite函数用法介绍

目录 一、函数原型 二、参数解析 三、返回值 四、核心特性 五、案例代码 案例1&#xff1a;写入字符串到文件 案例2&#xff1a;写入整型数组到二进制文件 案例3&#xff1a;写入结构体数据 六、注意事项 一、函数原型 作用&#xff1a;将内存中的数据块以二进制形式…

WIN系统服务器如何修改远程端口?

在Windows服务器上修改远程桌面协议&#xff08;RDP&#xff09;的默认端口&#xff08;3389&#xff09;可以增强服务器的安全性&#xff0c;减少被恶意扫描和攻击的风险。以下是修改远程端口的详细步骤&#xff1a; --- ### **步骤 1&#xff1a;通过注册表修改远程端口** …

使用Termux将安卓手机变成随身AI服务器(page assist连接)

通过以下方法在安卓手机上运行 Ollama 及大模型&#xff0c;无需 Root 权限&#xff0c;具体方案如下&#xff1a; 通过 Termux 模拟 Linux 环境运行 核心工具&#xff1a; 安装 &#xff08;安卓终端模拟器&#xff09;()]。借助 proot-distro 工具安装 Linux 发行版&#xf…

【Prometheus】prometheus结合pushgateway实现脚本运行状态监控

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全…

《运维工程师如何利用DeepSeek实现智能运维:分级实战指南》

目录 智能运维革命:DeepSeek带来的范式转变DeepSeek核心运维能力全景解析分级实战场景与解决方案 3.1 初级工程师:自动化运维入门3.2 中级工程师:复杂系统诊断与优化3.3 高级工程师:架构级智能运维典型项目案例深度剖析 4.1 金融系统全链路监控体系构建4.2 电商大促资源弹性…

elementui中aria-hidden报错

浏览器检查的原因&#xff0c;不影响功能&#xff0c;但会在控制台报红 解决办法&#xff1a; 在对应元素设置display:none .el-radio__original {display: none !important;}

重构谷粒商城07:Git一小时快速起飞指南

重构谷粒商城07&#xff1a;Git一小时快速起飞指南 前言&#xff1a;这个系列将使用最前沿的cursor作为辅助编程工具&#xff0c;来快速开发一些基础的编程项目。目的是为了在真实项目中&#xff0c;帮助初级程序员快速进阶&#xff0c;以最快的速度&#xff0c;效率&#xff…

关于人工智能的学习方向应该怎么选择

目前AI-人工智能主流方向和应用场景的判断有哪些呢&#xff1f;学习方向与建议&#xff08;根据自身情况而定&#xff09;总结 人工智能-AI从2023年开始逐渐的在整个行业传播被大家所推崇&#xff0c;再根据这两年人工智能不断迭代更新&#xff0c;特别是DeepSeek的横空出世让国…

Huatuo热更新--如何使用

在安装完huatuo热更新插件后就要开始学习如何使用了。 1.创建主框渐Main 新建文件夹Main&#xff08;可自定义&#xff09;&#xff0c;然后按下图创建文件&#xff0c;注意名称与文件夹名称保持一致 然后新建场景&#xff08;Init场景&#xff09;&#xff0c;添加3个空物体…

DeepSeek 和 ChatGPT 在特定任务中的表现:逻辑推理与创意生成

&#x1f381;个人主页&#xff1a;我们的五年 &#x1f50d;系列专栏&#xff1a;Linux网络编程 &#x1f337;追光的人&#xff0c;终会万丈光芒 &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐文章 ​ Linux网络编程笔记&#xff1a; https://blog.cs…