c++
MoriingRain
这个作者很懒,什么都没留下…
展开
-
c++ vector<int[n]>的问题
最近在使用vector<int[n]>时会报错,如下的程序#include<iostream>#include<vector>using namespace std;int main(){ vector<int[2]> tmp; int pos[2] = {0};// tmp.push_back(pos);}主要问题在push_back,因为vector的push_back不是真的将对象添加到容器中,而是拷贝构造的方原创 2021-08-26 16:07:44 · 409 阅读 · 0 评论 -
rapidjson 检测parse错误
在使用rapidjson::document的parse时,如果字符串json格式不正确不会立即出错,而在取document的元素时会导致程序崩溃,可以在parse后使用HasParseError函数检测是否出错在取元素时先判断是否有该元素,再判断是否是对应的类型#include "rapidjson/document.h"#include <iostream>using namespace std;int main(){ const char *json = "{\"name原创 2021-07-25 20:50:13 · 2887 阅读 · 0 评论 -
动态规划 最长公共子序
动态规划 最长公共子序最长公共子序使用动态规划解决最长公共子序最长公共子串最长公共子序最长公共子序最长公共子序是寻找两个字符串中最长的子序,例如abbaba和abacaa的最长公共子序为abaa,最长公共子序不要求每个元素是连续的,但要求序列在两个字符串中是顺序的,区别于最长公共字串使用动态规划解决最长公共子序最长公共子串首先最长公共子串使用动态规划很好解决建立二维数组dp[m + 1]nj + 1] m为字符串1的长度,n为字符串2的长度初始化dp[i][j] = 0 ,i = 0 ,j原创 2021-05-30 22:09:10 · 181 阅读 · 1 评论 -
《STL源码剖析》obj * volatile * my_free_list
volatile意思易变的,用来修饰变量时也是提示编译器后面的变量随时都有可能改变,该变量将不会被优化,程序读取该变量直接从变量地址中读取数据,防止变量被优化后,变量改变而其他程序检测不到,出现不一致。...原创 2021-05-30 21:33:36 · 289 阅读 · 0 评论 -
C++分割字符串
C++字符串分割string.h库函数strtok、strtok_s、strtok_rstrtokstrtok_sstrtok_r自己编写spilt函数string.h库函数strtok、strtok_s、strtok_rstrtokstrtok_sstrtok_r自己编写spilt函数原创 2021-05-19 14:58:32 · 148 阅读 · 0 评论 -
单向扫描快速排序
#include <iostream>#include <time.h>#include <vector>using namespace std;int parition(vector<int> &array,int left,int right){ int tmp = array[left]; int i = left,j = left+1; while(j <= right) {原创 2021-05-09 14:56:15 · 157 阅读 · 0 评论 -
单向链表快速排序
#include <iostream>#include <time.h>using namespace std;typedef class node{public: int value; node *next;} * nodep;nodep linkedpartion(nodep left,nodep right){ nodep p = left; nodep q = left->next; int tmp = le原创 2021-05-09 14:55:07 · 126 阅读 · 0 评论 -
c++ static简单总结
c++ static简单总结静态全局变量静态局部变量静态函数静态数据成员静态成员函数静态全局变量全局变量加static,仅在该文件可见,其他文件定义同名变量不冲突,未初始化默认值为0静态局部变量局部变量加static,和全局变量存在静态存储区中,未初始化默认值为0,作用域是局部作用域,局部作用域结束后不会销毁,可以重新调用函数使用且值不变。静态函数静态函数仅在本文件可见,其他文件定义同名函数不冲突。静态数据成员同一个类只有一份静态数据成员静态数据成员不能被实例函数定义存储在静态存储区遵原创 2021-04-27 22:50:55 · 94 阅读 · 0 评论 -
二叉树空间复杂度为O(1)的中序遍历c++
二叉树空间复杂度为O(1的中序遍历 二叉树节点空间复杂度为O(1)的中序遍历二叉树节点typedef class BinaryTree{public: char ch; BinaryTree *parent; BinaryTree *LeftChild; BinaryTree *RightChild;} * BT;空间复杂度为O(1)的中序遍历BT last(BT root) //寻找以root为根的最左叶子节点{ while (root->原创 2021-04-25 17:05:23 · 253 阅读 · 0 评论 -
二叉树的四种遍历
二叉树的四种遍历二叉树前序遍历中序遍历后序遍历层次遍历二叉树二叉树是n个有限元素的集合,该集合或者为空、或者由一个称为根(root)的元素及两个不相交的、被分别称为左子树和右子树的二叉树组成,是有序树。二叉树有四种遍历方式:前序遍历 后序遍历 中序遍历 层次遍历//二叉树节点typedef class BinaryTree{public: char ch; BinaryTree *parent; BinaryTree *LeftChild; BinaryTree原创 2021-04-25 16:45:08 · 511 阅读 · 0 评论 -
c++数组快速排序
c++数组快速排序/*从小到大快速排序*/#include <iostream>using namespace std;void quickSort(int num[],int left,int right){ int l = left, r = right; int temp = num[l]; while(l < r) { while(num[r] > temp && l < r)原创 2021-04-17 11:31:24 · 861 阅读 · 0 评论 -
c/c++使用redis
c/c++使用redishiredis1、安装hiredis2、接口介绍c程序操作Redis代码hiredishiredis是Redis官方推荐的基于C接口的客户端组件,它提供接口,供c语言调用以操作数据库。1、安装hiredis进入Redis的源码包的deps/hiredismakemake installldconfig #使动态库在系统中更新生效2、接口介绍#include <hiredis/hiredis.h>// 该函数用来连接redis数据库,参数为ip地址和端原创 2021-04-15 22:47:55 · 3380 阅读 · 0 评论 -
链表冒泡排序和二路归并排序
链表冒泡排序和二路归并排序冒泡排序二路归并排序冒泡排序struct ListNode{ int val; ListNode * next;}ListNode * sort(ListNode * head){ ListNode *p1,*p2; //这里假设头节点存着链表长度 如果没有可以先一遍循环得到链表长度 for(int i = 0; i < head->val - 1; i++) { p1 = head->next; p2 = p1->next;原创 2021-04-11 18:18:14 · 167 阅读 · 0 评论 -
Socket 用getpeername获得对端ip地址
Socket 用getpeername获得对端ip地址getpeername函数的定义int getpeername(int __fd, sockaddr *restrict __addr, socklen_t *restrict __len)#代码//int fd; 对端的文件描述符struct sockaddr_in caddr;memset(&caddr,0,sizeof(caddr));socklen_t len = sizeof(caddr);getpeername(fd,原创 2021-03-30 21:28:05 · 992 阅读 · 0 评论 -
sha256 c++实现代码
sha256 c++实现代码sha256.h源文件转载 原文章地址忘记了sha256.h/** Filename: sha256.hpp* Author: L.Y.* Brief: SHA256算法实现* Version: V1.0.0* Update log: * 1)20191108-20191113 V1.0.0* 1、初次版本。* TODO: * Attention: * 1)输入信息中有中文时,得到的数字指纹与使用SHA256在线加密工具得转载 2021-03-30 20:55:36 · 1314 阅读 · 0 评论