c++
WJ8871
这个作者很懒,什么都没留下…
展开
-
gdb调试常用命令
GDB调试常用命令原创 2023-11-08 20:17:05 · 937 阅读 · 0 评论 -
priority_queue 优先队列概念以及常见用法
priority_queue 优先队列概念以及常见用法原创 2022-11-21 12:55:07 · 406 阅读 · 1 评论 -
List介绍与使用:insert() 、erase()、find()、unique()、sort()、reverse()、remove_if()、assign()、front()、back()等
List介绍与使用:insert() 、erase()、find()、unique()、sort()、reverse()、remove_if()、assign()、front()、back()等原创 2022-11-20 21:21:03 · 476 阅读 · 0 评论 -
vector中push_back()、resize()、reserve()、insert()、erase()、front()、back()、assign()、begin()、end()、clear()
vector相关函数用法原创 2022-10-30 15:38:19 · 353 阅读 · 0 评论 -
C++动态内存管理 new/delete
C语言内存管理方式在C++中可以继续使用,但有些地方就无能为力而且使用起来比较麻烦,因此C++又提出了自己的内存管理方式:通过new和delete操作符进行动态内存管理。// 1. 单个类型空间的申请---new int* ptr1 = new int; int* ptr2 = new int(100); //申请空间的同时进行初始化// 2. 一段连续空间的申请---new [] //int array[10]; // int[10] //int a = 10...原创 2022-10-28 16:35:58 · 529 阅读 · 0 评论 -
string类size()、length()、capacity()、reverse()、push_back()、append()、insert()、erase()、substr()等相关函数用法
string原创 2022-10-28 16:28:37 · 470 阅读 · 0 评论 -
C++知识点总结
类和对象基本知识原创 2022-10-27 09:36:15 · 222 阅读 · 0 评论 -
ubuntu16.04连接mysql服务器
ubuntu16.04连接mysql服务器原创 2022-08-10 09:49:49 · 995 阅读 · 0 评论 -
jsoncpp库的使用及用httplib库搭建HTTP服务器
jsoncpp库的使用及用httplib库搭建HTTP服务器原创 2022-08-10 09:19:07 · 345 阅读 · 0 评论 -
vector知识点:vector简介、find函数、insert函数、reverse函数、resize函数、erase函数、pop_back、push_back、迭代器的使用及失效问题、空间增长问题等
vector相关知识点原创 2022-06-02 23:50:48 · 2140 阅读 · 0 评论 -
OJ-排序子序列
代码如下:原创 2022-05-18 21:40:46 · 106 阅读 · 0 评论 -
OJ-倒置字符串
eg:代码如下:原创 2022-05-18 21:37:49 · 119 阅读 · 0 评论 -
OJ-数组中出现次数超过一半的数字、字符串中找出连续最长的数字串
OJ1-数组中出现次数超过一半的数字思路:代码如下:class Solution {public: int MoreThanHalfNum_Solution(vector<int> numbers) { int x = 0, votes = 0, count = 0; for(int num : numbers){ if(votes == 0) x = num; vot..原创 2022-05-18 21:22:12 · 108 阅读 · 0 评论 -
OJ-字符串中的第一个唯一字符、字符串最后一个单词的长度,验证回文串、字符串相加
class Solution {public:int firstUniqChar(string s) { // 统计每个字符出现的次数 int count[256] = {0}; int size = s.size(); for(int i = 0; i < size; ++i) count[s[i...原创 2022-05-18 12:38:52 · 160 阅读 · 0 评论 -
OJ-仅仅翻转字母
思路:从前面找到首个字母,从后面往前找找到最后一个字母,进行交换,不断重复此步骤,类似快速排序。代码如下:class Solution {public:bool isLetter(char ch){if(ch >= 'a' && ch <= 'z') return true;if(ch >= 'A' && ch <= 'Z') return true; return false;}string reverseOn..原创 2022-05-18 12:20:09 · 89 阅读 · 0 评论 -
STL总结
STL(standard template libaray-标准模板库):是C++标准库的重要组成部分,不仅是一个可复用的组件库,而且是一个包罗数据结构与算法的软件框架。容器:就是将常用的数据结构封装起来,分为序列式容器和关联式容器。序列式容器(线性结构):C++98中提供的:string:动态类型顺序表---char vertor:动态类型顺序表---任意类型的数据都可以放 list:带头结点双向循环链表 deque:双端队列C++11:array:静态类型的顺序表 forw原创 2022-05-08 15:18:32 · 482 阅读 · 0 评论 -
OJ---打印日期
#include <iostream>#include <cstdio> using namespace std; int dayTab[2][13]={ {0,31,28,31,30,31,30,31,31,30,31,30,31}, {0,31,29,31,30,31,30,31,31,30,31,30,31} };bool IsLeapYear(int year){ //是否为闰年 return (ye...原创 2022-05-06 09:18:06 · 133 阅读 · 0 评论 -
OJ-日期累加
#include <iostream>using namespace std;class Date{public: Date(int year = 1900, int month = 1, int day = 1) : _year(year) , _month(month) , _day(day) { // 注意:构造日期是否合法 if (!(_year > 0 && (_month >= 1 &&...原创 2022-05-06 09:02:05 · 146 阅读 · 0 评论 -
OJ---日期差值
#include<iostream>using namespace std;class Date{public: Date(int year = 1900, int month = 1, int day = 1) : _year(year) , _month(month) , _day(day) { // 注意:构造日期是否合法 if (!(_year > 0 && (_month >= 1 && _mon...原创 2022-05-05 20:36:08 · 140 阅读 · 0 评论 -
OJ---计算一年的第几天
代码如下://天数#include<iostream>using namespace std;bool isLeapYear(int year){ if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) { return true; } else { return false; }}int main(){..原创 2022-05-05 20:06:36 · 92 阅读 · 0 评论 -
C++模板
一、函数模板格式:template<typename T1, typename T2,......,typename Tn>返回值类型 函数名(参数列表){}eg:template<typename T>void Swap( T& left, T& right){T temp = left;left = right;right = temp;}注意:typename是用来定义模板参数关键字,也可以使用class(切记:不能使用str原创 2022-05-04 22:50:36 · 85 阅读 · 0 评论 -
C++基础知识点总结2
1. .* :? :: sizeof . 这五个运算符不能重载2.赋值运算符必须要重载成类的成员函数,否则编译失败(只能定义在类内)原因:赋值运算符重载是默认成员函数,如果用户没有显示实现,则编译器会自动生成一份。3.赋值运算符加返回值目的:为了实现连续赋值。返回引用目的:为了提高程序的运行效率(直接将this返回回去,而不是返回临时对象)如果以自定义类型作为函数的参数,尽量传递应用,因为在传参时,不需要拷贝临时对象。如果返回的是自定义的对象,最好也以引用的形式返回。4.cons原创 2022-05-02 00:46:16 · 776 阅读 · 0 评论 -
c++基础知识点总结1
1.C++总计63个关键字,C语言32个关键字2.命名空间:使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字污染。 定义命名空间,需要使用到namespace关键字。 同一个工程中允许存在多个相同名称的命名空间,编译器最后会合成同一个命名空间中。3.使用cout标准输出(控制台)和cin标准输入(键盘)时,必须包含<iostream>头文件以及std标准命名空间。4.缺省参数缺省参数是声明或定义函数时为函数的参数指定一个默认值。 半缺省参数必须从右往左来原创 2022-05-01 21:43:16 · 776 阅读 · 0 评论 -
OJ- 1+2+3+...n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
class Sum{ public: Sum() { ++count; sum+=count; } static void reset() { sum=0; count=0; } static int getSum() { return sum; } private: static int count.原创 2022-05-01 19:59:12 · 194 阅读 · 0 评论 -
OJ题-链表分割
题目:解题思路:创建两个链表,分别存放小于x的节点和大于等于x的节点,分别进行尾插代码如下:class Partition {public: ListNode* partition(ListNode* pHead, int x) { if(pHead == NULL) return NULL; struct ListNode* lessHead, *lessTail,*greaterHead, *gr...原创 2022-03-10 23:59:23 · 961 阅读 · 0 评论 -
OJ-数组形式的整数加法
题目含义举例:/** * Note: The returned array must be malloced, assume caller calls free(). */int* addToArrayForm(int* num, int numSize, int k, int* returnSize) { int* res = malloc(sizeof(int) * fmax(10, numSize + 1)); *returnSize = 0; for (int原创 2022-02-25 22:21:25 · 276 阅读 · 1 评论 -
生成可执行程序四个步骤:预处理、编译、汇编、链接
预处理相当于根据预处理指令组装新的c/c++程序,经过预处理,会产生一个没有头文件(都已经被展开了),宏定义(都已经替换了),没有条件编译指令(该屏蔽的都屏蔽掉了),没有特殊符号的输出文件,这个文件的含义同原本的文件无异,只是内容上有所不同。编译将预处理完的文件逐一进行一系列词法分析,语法分析,语义分析及优化后,产生相应的汇编代码文件。编译是针对单个文件编译的,只校验本文件的语法是否有问题,不负责寻找实体。链接通过链接器将目标文件(或许还有库文件)链接在一起生成一个完整的可执行程序。链接原创 2022-01-10 17:45:01 · 2567 阅读 · 0 评论 -
文件操作---fread、fwrite、fgets、fputs等函数介绍
这里介绍一下在文件操作中几个重要的函数常用函数如下:功能 函数名 适用于 字符输入函数 fgetc 所有输入流 字符输出函数 fputc 所有输出流 文本行输入函数 fgets 所有输入流 文本行输出函数 fputs 所有输出流 格式化输入函数 fscanf 所有输入流 格式化输出函数 fprintf 所有输出流 二进制输入 fread 文件 二进制输出 fwri..原创 2022-01-09 21:49:32 · 1562 阅读 · 0 评论 -
动态内存函数介绍(malloc、free、calloc、realloc)
近期掌握的几个小知识分享一下~ 如下:栈区通常存放:局部变量,参数,以及静态开辟的空间。 malloc、free、calloc、realloc申请的空间通常放在堆区。 static声明的部分通常放在静态存储区。下面介绍几种动态内存函数:1.malloc函数和free函数(都需要头文件stdlib.h或malloc.h):malloc函数是向内存申请一块连续可用的空间,并返回指向这块空间的指针。如果开辟成功,则返回一个指向开辟好空间的指针。 如果开辟失败,则返回一个NULL指针,因此.原创 2022-01-09 19:35:54 · 655 阅读 · 0 评论 -
自定义类型:结构体(字节对齐)、枚举、联合
结构体定义及定义结构体变量:struct Test{ char a; double b; int c;}t, *pt, tar[10];void main(){ struct Test t; struct Test *pt; struct Test tar[10];}匿名结构体—定义结构体同时定义结构体变量:struct{ char a; double b; int c;}t;void main(){ t.a = 's'; t.b = 3.14; pri原创 2022-01-09 18:05:02 · 638 阅读 · 0 评论 -
字符串相关函数知识点总结及模拟实现
主要整理了字符串相关函数以及模拟实现:1.求字符串长度:strlen#include<stdio.h>#include<assert.h>int my_strlen(const char* p){ assert(p != NULL); int len=0; while (*p != '\0') { len++; p++; } return len;}int main(){ const char* a = "abcd"; int len原创 2021-11-27 22:16:21 · 226 阅读 · 0 评论 -
数据存储——无符号数有关计算、浮点数相关运算
数据存储知识点总结如下:原创 2021-11-10 23:32:53 · 300 阅读 · 0 评论 -
将字符串按单词对其逆序
思路:将各个单词逆序,然后整体逆序。例如:I like beijing;①I ekil gnijieb②整体逆置:beijing like I代码实现如下:/*************************************************题目: 给定一个字符串,按单词将该字符串逆序,不包括标点如输入"hello world",输出为"world hello"。*************************************************/#incl原创 2021-11-04 10:12:18 · 689 阅读 · 0 评论 -
统计二进制中1的个数
方法1:用取余的方法。代码如下:#include<stdio.h>int len(unsigned int a){ int t = 0; while (a != 0) { int end = a % 2; if (end == 1) { t += 1; } a /= 2; } return t;}int main(){ unsigned int a = 15; int num = len(a); printf("%原创 2021-11-03 09:08:59 · 73 阅读 · 0 评论