- 博客(43)
- 收藏
- 关注
原创 测试4G网络是否正常的几种方法
接下来,使用curl_easy_perform函数执行HTTP请求,并使用curl_easy_getinfo函数获取响应的状态码。如果收到了回复,则表示4G网络正常可用,否则表示网络异常。它首先定义了一个测试网址(这里使用了Google作为测试网址),然后通过拼接字符串形式生成ping命令,并使用std::system函数来运行该命令。否则,表示网络异常。这段代码使用了socket函数来创建一个TCP套接字,然后通过connect函数来连接到指定的服务器地址(这里使用了Google的IP地址)。
2023-09-18 18:15:09
1077
原创 基于VSCode和CMake进行C++多文件编译及调试
“避坑说明:头文件名称不要设置为include,会识别不到,报错”对应文件代码如下:头文件 print.h#ifndef _PRINT_H_#define _PRINT_H_#include <iostream>using namespace std;void print();#endif 源文件 print.cpp#include "print.h
2022-05-22 20:52:48
4150
原创 Vscode下中文乱码问题
run code运行程序在Vscode默认编码UTF-8下编程,直接点击运行run code,会出现终端输出中文乱码问题,如下图所示。解决办法:在此终端窗口,命令行输入命令 “ chcp 6500 ” ,然后,直接run code 即可解决中文乱码问题。但是,若关闭此终端窗口,需再次输入命令 “ chcp 6500 ”,否则,还会出现中文乱码。也就是说,run code 情况下,此解决办法不能永久解决中文乱码。F5调试 或 ctrl + F5 运行程序由于Vscode默认编码是UTF-8,调试时
2022-05-20 10:24:31
3765
2
原创 静态库和动态库
Linux系统下 程序运行的三种方式直接运行g++ main.cpp src/swap.cpp -Iinclude -Wall -std=c++11 -o a.out./a.out链接静态库生成可执行文件// 进入src目录下cd src// 汇编 生成swap.o文件g++ swap.cpp -c -I../include// 生成静态库 libswap.aar rs libswap.a swap.o// 回到上级目录cd ..// 链接 生成可执行文件 static_mai
2022-01-26 16:20:23
1319
原创 最长等比子序列
#include <iostream>using namespace std;#include <vector>#include <unordered_map>/* 最长等比子序列 */int longestArithSeqLength(vector<int>& A) { if (A.size() == 2) { return 2; } if (A.size() == 3) { ret
2021-10-16 20:41:43
565
原创 面向过程与面向对象编程实例
第一章 简单工厂模式题目:要求输入两个数和运算符号,得到结果。1. 面向过程编程#include <iostream>using namespace std;float operationFun(float num1, float num2, char charOper) { switch (charOper) { case '+': return num1 + num2; break; case '-': return num1 - num2; break;
2021-09-28 15:31:46
700
原创 MySQL优化
1. 应用优化1.1. 使用数据库连接池对于访问数据库来说,建立连接的代价是比较昂贵的,因为我们频繁的创建关闭连接,是比较耗费资源的,所以,有必要建立 数据库连接池 以提高访问的性能。1.2. 减少对MySQL的访问1.2.1. 避免对数据进行重复检索在编写代码时,理清对数据库的访问逻辑,能够一次连接获取结果的,就不用两次连接select id, name from student;select id, age from student;-- 这样,就需要向数据库提交两次请求,数据库需要做两
2021-09-01 14:58:05
154
原创 SQLyog远程连接centos7系统下的MySQL数据库
打开SQLyog,新建连接连接不上的话首先登录MySQL[root@localhost ~]# mysql -u root -pmysql> grant all privileges on *.* to 'root' @'%' identified by '123456';mysql> flush privileges;现在在测试连接,如果还连接不上,可能是Linux防火墙问题再测试连接点击确定,然后连接即可。...
2021-08-29 15:21:32
529
原创 常量指针和指针常量
常量指针和指针常量的区别详解* (指针)和 const (常量)谁在前就先读谁;* 象征指针,const 象征内容;谁在前面谁就不允许改变1. 常量指针int a = 10;int b = 20;const int* p = &a; //const在前,定义为常量指针p = &b; //正确,指针的指向可以更改//*p = 20; //错误,指针指向的值不可以改特点:指针的指向(指向的地址)可以修改,但指针指向的值不可以修改(内容不可以重新赋值,内容的改变可以通过修改
2021-08-22 11:04:55
220
原创 稀疏矩阵存储
稀疏矩阵存储#include <iostream>using namespace std;#define MAX 100#define ERROR 0#define OK 1typedef int Status; //函数结果状态类型typedef struct { int row, col; //三元组的行号、列号 int item; //三元组的值} Triple;//定义 TripleMatrix 类,每个 TripleMatrix 对象访问一个矩阵的信息
2021-08-03 11:02:45
160
原创 操作系统之间的文件传输
1. windows 与 windows利用QQ, 微信, 邮件等2. Windows 与 Linux方法一:在Windows上安装 Xshell打开Xftp就可以了双击文件即可完成传输,或者 右键 传输方法二:利用 lrzsz在Linux上安装yum install lrzsz -yrz 将文件从 Windows 上传到 Linuxsz 将文件从 Linux 传输到 Windows3. Linux 与 Linux利用 scp将本 Linux ~/ 下的文件 apache-
2021-07-07 22:22:21
669
原创 大话设计模式(15)——享元模式(Flyweight)
享元模式(Flyweight)享元模式(Flyweight):运用共享技术有效地支持大量细粒度的对象网站共享#include <iostream>using namespace std;#include <string>#include <map>class User {private: string name;public: User(string name) { this->name = name; } string GetNa
2021-06-22 22:28:11
149
原创 大话设计模式(14)——中介者模式(Mediator)
中介者模式(Mediator)中介者模式(Mediator):用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。美国和伊拉克之间的对话都是通过联合国安理会作为中介来完成的。#include <iostream>using namespace std;#define SAFE_DELETE(p) {if(p){delete p; p = nullptr;}}class Country;//联合国机构
2021-06-22 14:54:46
142
原创 大话设计模式(13)——职责链模式(Chain of Responsibility)
职责链模式(Chain of Responsibility)职责链模式(Chain of Responsibility):使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。加薪代码实现#include <iostream>using namespace std;#define SAFE_DELETE(p) {if(p){delete p; p = nullptr;}}//申请cla
2021-06-22 10:52:37
121
原创 大话设计模式(12)——命令模式(Command)
命令模式(Command)命令模式(Command):将一个请求封装成一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。吃烧烤的例子紧耦合设计#include <iostream>using namespace std;#define SAFE_DELETE(p) {if(p){delete p; p = nullptr;}}class Barbecuer {public: void BakeMutton() { co
2021-06-22 09:18:58
128
原创 大话设计模式(11)——桥接模式(Bridge)
桥接模式(Bridge)桥接模式(Bridge):将抽象部分(Abstraction)与它的实现部分(Implementation)分离,使它们都可以独立地变化。什么叫抽象与它的实现分离,这并不是说,让抽象类与其派生类分离,因为这样没有任何意义。实现指的是抽象类和它的派生类用来实现自己的对象。手机品牌和手机软件的关系手机品牌包含手机软件,但是软件并不是品牌的一部分,所以他们之间是聚合关系。#include <iostream>using namespace std;class
2021-06-21 19:32:56
179
原创 大话设计模式(10)——单例模式(Singleton)
单例模式(Singleton)单例模式(Singleton):保证一个类仅有一个实例,并提供一个访问它的全局访问点。通常我们可以让一个全局变量使得一个对象对访问,但它不能防止你实例化多个对象。一个最好的办法就是,让类自身负责保存它的唯一实例。这个类可以保证没有其他实例可以被创建,并且它可以提供一个访问该实例的方法。在C++中,是将构造函数、拷贝构造函数以及赋值操作符声明为private权限,来阻止用户实例化一个类。通过类提供一个public权限下的static方法,获得这个类唯一的实例化对象。单线程
2021-06-21 17:03:28
265
原创 大话设计模式(8)——备忘录模式(Memento)
备忘录模式以保存游戏进度为例Memento类定义了内部的状态,而Caretake类是一个保存进度的管理者,GameRole类是游戏角色类。可以看到GameRole的对象依赖于Memento对象,而与Caretake对象无关。#include <iostream>using namespace std;#include <vector>class Memento {public: Memento(int vitality, int attack, int defe
2021-06-10 20:48:56
195
1
原创 大话设计模式(7)——适配器模式(Adapter Pattern)
适配器模式(Adapter Pattern)适配器模式(Adapter):将一个类的接口转换成客户希望的另一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类(Adaptee)可以一起工作。实例1#include <iostream>using namespace std;//自带充电器 相当于Adapteeclass OwnCharger {public: void ChargeWithFeetFlat() { cout << "正在使用
2021-06-10 14:35:12
180
原创 大话设计模式(6)——状态模式(State Pattern)
状态模式#include <iostream>using namespace std;#include <list>#include <string>class War;class State {public: //不能使用纯虚析构 virtual void Prophase() {} virtual void Metaphase() {} virtual void Anaphase() {} virtual void End() {} vir
2021-06-10 09:43:15
160
原创 大话设计模式(4)
代理模式没有代理的代码#include <iostream>using namespace std;#include <string>class SchoolGirl {private: string name;public: void setName(string name) { this->name = name; } string getName() { return this->name; }};class Pursuit
2021-06-07 20:06:37
109
转载 大话设计模式(3)
**单一职责原则(SRP):**就一个类而言,应该仅有一个引起它变化的原因。**开放-封闭原则:**是说软件实体(类、模块、函数等)应该可以扩展,但是不可修改。对于扩展是开放的(open for extension),对于更改是封闭的(closed for modification)。**依赖倒转原则:**抽象不应该依赖细节,细节应该依赖于抽象。就是针对接口编程,不要对实现编程。高层模块不应该依赖底层模块,两个都应该依赖抽象。**装饰模式(Decorator):**动态地给一个对象添加一些额外的职
2021-06-07 16:16:09
106
原创 大话设计模式(2)
第2章 商场促销——策略模式商场收银软件简单工厂模式#include <iostream>using namespace std;//现金收费抽象类class AbstractCashSuper {public: virtual double acceptCash(double money) = 0;};class CashNormal :public AbstractCashSuper {public: double acceptCash(double money)
2021-06-06 15:20:52
112
原创 设计原则——依赖倒置原则(DIP)
依赖倒置原则(Dependence Inversion Principle, DIP):依赖于抽象(接口),不要依赖于具体的实现(类),也就是针对接口编程。#include <iostream>using namespace std;//银行工作人员class BankWorker {public: void saveService() { cout << "办理存款业务......" << endl; } void payService() {
2021-06-02 20:30:59
207
原创 大话设计模式——工厂模式
要求输入两个数和运算符号,得到结果。#include <iostream>using namespace std;int main() { try { float numberA; cout << "请输入数字A:"; cin >> numberA; char charOperate; cout << "请选择运算符号(+、-、*、/):"; cin >> charOperate; float number
2021-06-02 16:02:47
266
原创 如何添加论文参考文献
第一步:插入参考文献将鼠标光标放在需要引用参考文献的地方,在Word上方工具栏中找到【引用】,点击【插入尾注】,然后打开脚注菜单栏设置编号格式,如图所示。按照上述步骤,依次插入全部参考文献后,即可添加成功。第二步:批量修改文献格式...
2021-05-24 17:17:15
7152
1
原创 循环中的i--和--i
while循环:while(i–) : //先判断,后–,当i = 0 时退出while循环体,但是i还是要–while(–i) : //先–,后判断。for循环:for(int i = 0; i < 10; i++) 和 for(int i = 0; i < 10; ++i) 在运算上是一样的,但在时间运行上会有差别...
2021-04-01 15:40:14
1541
转载 学C++的推荐网站
1. cpp referencecpp reference即c++参考手册,这个网站非常简洁,可读性也很强,不但更新及时,还提供了很好的示例cpp reference :https://zh.cppreference.com/w/cpp reference :https://zh.cppreference.com/w/2. learn cpp该网站致力于教你如何用c++编程,无论你之前是否有过编程经验,网站上的教程都能指导你完成编写,编译和调试c++程序的所有步骤,都附有大量的实例learn c
2021-01-23 21:14:33
3175
原创 C++核心编程4
黑马程序员学习笔记5、文件操作5.1 文本文件写文件写文件的步骤如下:包含头文件 #include创建流对象 ofstream ofs;打开文件 ofs.open(“文件路径”, 打开方式);写数据 ofs << “写入数据”;关闭文件 ofs.close();#include <iostream>using namespace std;#include <fstream> //包含头文件void test01(){ //1、包含
2020-12-17 20:53:37
133
原创 C++核心编程3
黑马程序员学习笔记4、类和对象4.6 继承继承的好处:可以减少重复的代码class A : public B;A类称为子类 或 派生类B类称为父类 或 基类派生类中的成员,包括两大部分:一类是从基类继承过来的,一类是自己增加的成员。从基类继承过来的表现其共性,而新增的成员体现其个性。利用开发人员命令提示工具查看对象模型Developer Command Prompt for VS 2019子类继承父类后,当创建子类对象,也会调用父类的构造函数,那么父类和子类的构造和析构顺序是谁
2020-12-17 19:52:17
204
原创 C++核心编程1
黑马程序员学习笔记本阶段主要针对C++面向对象编程技术做详细讲解1、内存分区模型C++程序在执行时,将内存大方向划分4个区域:代码区:存放函数体的二进制代码,由操作系统进行管理的全局区:存放全局变量和静态变量以及常量栈区:由编译器自动分配释放,存放函数的参数值,局部变量等堆区:由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收内存四区意义:不同区域存放的数据,赋予不同的生命周期,给我们更大的灵活编程在程序编译后,生成了exe可执行程序,未执行该程序前分为两个区域代码区:
2020-11-30 21:38:25
100
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人