- 博客(225)
- 资源 (7)
- 问答 (15)
- 收藏
- 关注
原创 模拟路由器
//路由器,功能为:存储,转发即抓包,改变包的内容#include <stdio.h>#include <sys/socket.h>#include <netinet/ether.h>#include <arpa/inet.h>#include <string.h>#include <netpacket/packet.h>#include <sys/ioctl.h>#include <net/if.h&
2021-05-28 16:01:17 591 2
原创 适配器的使用
绑定参数公有继承binary_function参数萃取(设置binary_function的三个参数分别是:仿函数的两个参数和返回值)operator最右方加const修饰
2021-05-28 15:40:33 169
原创 set容器判断是否插入成功
set<int> sa; bool flag = sa.insert(1).second; bool flag2 = sa.insert(1).second; cout<<"flag="<<flag<<endl; cout<<"flag2="<<flag2<<endl;
2021-05-28 14:16:30 557
原创 二叉树求高度以及叶子节点数目
int btDepth(TreeNode* root){ if(NULL==root) return 0; int lh = btDepth(root->left); int rh = btDepth(root->right); int height = lh>rh?lh+1:rh+1; return height;}void leafNum(TreeNode* root,int* num){ if(NULL
2021-05-28 11:45:26 450
原创 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
/** * struct ListNode { * int val; * struct ListNode *next; * }; */class Solution {public: /** * * @param l1 ListNode类 * @param l2 ListNode类 * @return ListNode类 */ ListNode* mergeTwoLists(ListNode* l1, ListNode*
2021-05-27 16:53:15 132
原创 两数的和(牛客)
class Solution {public: /** * * @param numbers int整型vector * @param target int整型 * @return int整型vector */ vector<int> twoSum(vector<int>& numbers, int target) { // write code here v.
2021-05-27 14:48:56 69
原创 二叉树的前中后序遍历(牛客)
/** * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */class Solution {public: /** * * @param root TreeNode类 the root of binary tree * @return int整型vector<vector<>> */
2021-05-27 11:53:30 87
原创 set容器
set容器根据元素键值自动排序键值实值是同一个值键值不能相同迭代器不能改变键值底层是红黑树(父子之间黑红相间)#include <iostream>#include<set>using namespace std;void printSet(set<int>& s){ set<int>::iterator it = s.begin(); for(;it!=s.end();it++) { c.
2021-05-27 10:37:38 64
原创 非递归实现链表反转(无头节点)
class Solution {public: ListNode* ReverseList(ListNode* pHead) { if(pHead==NULL||pHead->next==NULL) return pHead; else { //申请三个指针,1.当前指向2.返回指针3.当前指向的前一个 //ListNode* cur = pHead; ListNode*
2021-05-26 17:53:12 77
原创 数据库sqlite3操作3(c语言操作数据库)
main.c#include<stdio.h>#include"sqlite3.h"//结果中每一行数据触发一次int my_fun(void* para,int n_column,char** column_value,char** column_name){ printf("####################\n"); int i = 0; for ( i = 0; i < n_column; i++) { print.
2021-05-25 11:54:53 155 1
原创 数据库sqlite3操作3
常用的约束分类:主键,唯一约束,检查约束主键:一个表中只有一个主键,主键修饰的列额值不允许重复联结表:视图:重用SQL语句,简化复杂的sql操作(简化联结表的语句)触发器:是数据库的回调函数,每当delete,insert,update 操作才会触发创建索引:...
2021-05-25 10:59:38 81
原创 条件变量,生产者消费者模型
通常,条件变量和互斥锁一起使用!生产者,消费者只能有一人进入仓库生产或消费#include<stdio.h>#include<pthread.h>#include <sys/types.h>#include <unistd.h>#include<stdlib.h>pthread_mutex_t mutex;//定义一个互斥锁pthread_cond_t cond;//定义一个条件变量int num = 0;//定义一个仓库vo.
2021-05-24 09:18:42 121
原创 信号量实现互斥,同步
互斥:p即-1,v即+1,互斥需要p自己v自己,无论多少个线程只需要一个信号量同步:有几个线程就需要几个信号量,p自己v下一个,在初始化的时候,sem_init值为1的先执行
2021-05-24 08:23:43 164
原创 map容器
class Student{public: string name; int age;public: Student(){} Student(string name, int age) { this->name = name; this->age = age; }};#include<vector>void test02(){ map<int,Student> m;/..
2021-05-23 22:37:02 559
原创 关于注释的写法
/*************************************************************************文件名:network.c文件描述:网络通讯函数集创建人:Hao Chen, 2003年2月3日版本号:1.0修改记录:************************************************************************/而对于函数来说,应该也有类似于这样的注释:/*==========
2021-05-23 22:24:20 57
原创 使用单例模式
#pragma once//功能: 1. 全局的配置文件// 2. 单例模式进行读取#include <iostream>#include<string>#include <QString>#include <QByteArray>using namespace std;typedef struct _SCompass{ double XOffset; double YOffset; double ZOffset;}SCompas
2021-05-13 17:58:43 119
原创 deque容器
deque双端动态数组:双开口连续线性与deque的差异:允许使用常数项时间对头端进行元素的插入删除(不管数据量删除插入的耗时不变),没有容量vector 单端动态数组deque的原理:(这好像哈希表的样子)...
2021-05-13 17:01:35 60
原创 学习哈希表
参考:https://www.bilibili.com/video/BV1si4y1b7Rs/?spm_id_from=333.788.recommend_more_video.1
2021-05-13 16:19:01 63
原创 时间复杂度
参考:https://www.bilibili.com/video/BV14j411f7DJ?from=search&seid=15258461156211809121给2维数组赋值,空间复杂度O(n^2)
2021-05-13 15:39:58 70
原创 递归方法实现没有头节点的链表反转
Node* reverseList(Node* head){ if(head->next == NULL) return head; if(head==NULL) return NULL; Node* p = reverseList(head->next); head->next->next = head; head->next = NULL; return p;}
2021-05-13 11:59:26 209
原创 学习http
参考:https://www.bilibili.com/video/BV1V54y1y7c4?from=search&seid=10157147860167963416
2021-05-12 18:30:19 66
原创 makefile的用法
作用:在修改文件之后不会重复编译,也就是说减少重复编译时间语法:命令列表是具体步骤如果make需要寻找其它makefile文件名,make+ 其它文件名假想目标(没有依赖文件)make从第一条开始执行,且只执行第一个目标,缺少依赖则继续,但是可以使用 make clean 也就是说 从clean这条开始i执行makefile的语言:变量不代表值,需要$(变量)取到变量的值查看系统环境变量: envecho $<环境变量名>导入环境变量预定义变量:
2021-05-12 11:29:10 122
原创 qpushbutton中文字和图片上下布局
ui.pushButton->setStyleSheet("QPushButton{"\ "border: 1px solid #00d2ff; "\ "min-height: 40px; "\ "color:red; "\ "font-size:14px; "\ "text-align : bottom; "\ "ba
2021-05-11 09:54:19 2653
原创 Qt布局之后的特定位置显示
//点击隐藏,显示 connect(ui.widget_2, &MWidget::mclicked, this, [=]() { qDebug() << ui.widget_2->mapToGlobal(ui.widget_2->pos()).x(); static int a = 0; a ^= 1; if (a == 1) { QRect rect = ui.widget_2->geometry(); //int x
2021-05-11 09:48:40 440
原创 qt的lambada表达式中&和=的区别?
Widget::Widget(QWidget *parent) : QWidget(parent) , ui(new Ui::Widget){ ui->setupUi(this); BhWidgetRender* p = new BhWidgetRender(this); connect(ui->label_2,&MQlable::mclicked,[&]() { p->hide(); });}
2021-05-08 11:46:02 577 2
原创 c语言求最小公倍数和最大公约数
注:最小公倍数等于两数相乘除以最大公约数#include <stdio.h>int LCM(int a,int b) //最小公倍数{ //两数相乘除以最大公约数 int c = a*b; int d = GCD3(a,b); return c/d;}int GCD(int a,int b)//最大公约数{ //两种思路: 1.从1开始,找最大能整除这两个数的数 // 2.从二者较小的数开始,直到有个数将二者整
2021-05-07 21:03:01 329
原创 搜索二叉树,插入,搜索,找最值,找父节点
#include <iostream>using namespace std;typedef struct _TreeNode{ int data; struct _TreeNode* left; struct _TreeNode* right;}TreeNode;int getTreeHeightByPostOrder(TreeNode* r){ int lH,rH,maxH; if(r) { lH = ge
2021-05-07 11:49:38 81
原创 判断数组里是否有重复的两个数
#include <stdio.h>#include<string>using namespace std;bool judgeDup(int* arr,int n){ bool a = false; //使用选择排序的遍历 for(int i=0;i<n-1;i++) { for(int j=i+1;j<n;j++) { if(arr[i]==arr[j])
2021-05-06 15:35:35 339
原创 两数相加
#include <stdio.h>/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListNode(int x, ListNode *
2021-05-06 15:10:03 50
qt怎么把图片编程这种状态?
2021-05-10
qtcreator如何查看资源文件的url?
2021-05-10
这是什么意思啊啊啊啊啊?
2021-05-06
qt如何设置ui的区间的颜色?
2021-04-27
自定义combobox的bug
2021-04-26
如何改变qt的窗口边框的样式
2021-04-25
如果我非要在这里编辑的话该怎么操作
2021-04-25
实现这样的qt界面有什么建议?
2021-04-23
QtRunWork”任务返回了 false,但未记录错误
2021-04-22
在停止调试的时候为什么会出现程序异常结束?
2021-04-21
qtcpsocket如何判断是否和服务器建立链接?
2021-04-16
c++标准中构造函数可以被打断吗?
2021-04-15
自实现qbytearry,或者有没有类似qbytearry的c++的类?
2021-04-09
红圈部分有个git模块,不小心点没了怎么让它出来?
2021-04-09
new一个对象 传参this有什么用?
2021-04-08
TA创建的收藏夹 TA关注的收藏夹
TA关注的人