- 博客(131)
- 问答 (1)
- 收藏
- 关注
原创 使用 “&&“ 做分隔符,分割得到字符串数组。“ab&&2“ 得到 [“ab“, “2“]。要求不能用分割函数,不过C++也没这玩意。
分割字符串
2023-02-23 21:32:11 524
原创 记一个写项目时遇到的错误:push_back()之后vector还是为空。以后别再犯这个错误了,真的很难找啊 T_T,警钟长鸣。
get方法的返回值类型一定要想清楚是否需要加`&`啊!!!
2022-10-17 15:09:57 958
原创 CMake指令解析 set(CMAKE_CXX_FLAGS “$ENV{CXXFLAGS} -rdynamic -O3 -fPIC -ggdb -std=c++11 -Wall -Wno-deprec
本文包含多种复杂编译选项的解释
2022-06-02 18:48:28 23035
原创 C++ 嵌套类
嵌套类就是:在一个类的作用域里,又定义了一个类。1、为什么引入嵌套类?之所以引入这样一个嵌套类,往往是因为外围类需要使用嵌套类对象作为底层实现,并且该嵌套类只用于外层类的实现,同时可以对用户隐藏该底层实现。可以这样理解:有一些工作不想被用户知道怎么实现的,那么就把这些工作交给嵌套类实现,然后对外层类提供一个接口即可。class A {private: class Imp; Imp* impl;public: A(); virtual ~A(); void
2022-05-30 15:13:40 1622
原创 C++设计模式
面向对象编程的一些术语:延迟到子类: 定义一个虚函数,让子类来重写获实现他。这其实就是支持子类去 变化。扩展: 继承 + 多态,即,子类继承基类 并对其虚函数进行 override依赖: 一般指编译时依赖,如:A依赖B,那么在编译的时候,编译器需要先编译 B,才能再编译 A。本篇指的一般是编译时依赖,如果是运行时依赖会特别说明。1、面上对象设计的8大原则依赖倒置:隔离变化。高层模块(需要稳定)不应该依赖于低层模块(是易变化的),二者都应该依赖于抽象(稳定的)。抽象(稳定)不应该依赖于实现细
2022-05-30 12:22:14 510
原创 面向对象程序设计———组合、委托 与 继承
1、组合 has-a一个类中有另外一个类的对象,这种关系就叫组合。表现为 has-a1.1 组合类对象占内存的大小组合类的大小包括他组合的所有类对象的大小。1.2 组合类的构造 和 析构 构造由内而外: 先执行内部类的默认构造函数,再执行自己的构造函数。(执行内部类构造函数的过程由编译器完成,如果不想调用默认构造函数,那么必须手动在初始化列表的位置调用我们想用的构造函数) 析构由外而内: 先执行自己的析构函数,再执行内部类的析构函数。(执行内部类析构函数的过程也由编译器完成)2、委托一个类
2022-05-30 12:21:52 331
原创 一个服务器压力测试程序
这是一个服务器压力测试程序,它本身运行在客户端,能模拟大量用户同时访问一台服务器。#include<stdlib.h>#include<stdio.h>#include<assert.h>#include<unistd.h>#include<sys/types.h>#include<sys/epoll.h>#include<fcntl.h>#include<sys/socket.h>#inclu
2022-05-17 12:24:26 244
原创 最小生成树的常用算法模板
1、所有最小生成树算法最小生成树问题一般都使用无向图,基本不会遇到有向图的问题。2、朴素版 Prim 算法稠密图就用Prim算法。
2022-05-15 21:53:59 238
原创 C++ printf族函数
1、所有的printf族函数有两大类:#include<stdio.h>int printf(const char* format, ...);int fprintf(FILE* stream, const char* format, ...);int dprintf(int fd, const char* format, ...);int sprintf(char* str, const char* format, ...);int snprintf(char* str, siz
2022-05-15 18:23:36 826 1
原创 Linux 中与字符串相关的函数strpbrk、strcasecmp、strspn(不间断更新)
本篇博客旨在整理出所有Linux网络编程中常用的字符串相关的函数,这些函数普遍用在处理网络通信中的字符串数据。话不多说,直接进入正题。1、strpbrk函数#include<string.h>char* strpbrk(char* s1, char* s2);strpbrk()从第一个字符指针指向的位置 向后检查每个字符,直到遇到\0(不检查\0),如果检查到的某个字符在s2指向的字符串中,那么返回他的地址,并停止检查。如果s1 、s2没有相同字符,返回NULL。注:传入strpb
2022-05-15 15:29:23 752
原创 Linux 线程———详解
1、线程的概念 和 基础知识1.1 什么是线程线程可看作轻量级进程(light weight process),Linux的线程本质仍然是进程。Linux先有进程后有线程,当创建了一个进程时,系统给他分配一段4G的虚拟内存,并在其内生成进程的PCB,当他调用相关函数创建一个线程时,会为新的线程生成一个PCB也存放在当前的4G虚拟内存中,而原来的进程也沦为一个线程。所以,进程和线程的区别是:是否共享地址空间。 进程总是独享4G的虚拟内存,而多个线程共享一段4G的空间。线程是CPU调度的最小单位,也是
2022-05-12 21:50:18 4204
原创 Linux高级进程编程———在任意两个进程间传递文件描述符:使用 sendmsg 和 recvmsg 实现
/* 本程序实现子进程打开一个文件描述符,然后将其传递给父进程,父进程通过其获得文件内容 */#include<sys/socket.h>#include<fcntl.h>#include<stdio.h>#include<unistd.h>#include<stdlib.h>#include<assert.h>#include<string.h>static const int CONTROL_LEN =
2022-05-08 08:48:26 2891 3
空空如也
C++能从输入流读取数据给对象吗?
2022-03-02
TA创建的收藏夹 TA关注的收藏夹
TA关注的人