c++基础到高级
文章平均质量分 70
c++基础到高级
揽揽
这个作者很懒,什么都没留下…
展开
-
QT: QSettings读配置文件与c读配置文件
#include <QSettings >//创建配置文件 QSettings iniFile("./test.ini", QSettings::IniFormat); //写入数据 iniFile.setValue("/setting/value1", 1); iniFile.setValue("/setting/value2", 2); iniFile.setValue("/log/value3", 3); //读取数据 QSt原创 2020-12-21 14:53:32 · 127 阅读 · 0 评论 -
回调函数写在类中要注意
一定要加static :如 --》 static void* jThreadFunc(void* param); //在本类可以不实现,可以在子类实现不能这样 :virtual static void* jThreadCommParse(void* param);或这样 :virtual static void* jThreadCommParse(void* param) = 0;总之 virtual与static不能同时修饰一个函数或变量如果jThreadFunc要调用非静态的成员变量,要原创 2020-12-10 10:36:04 · 349 阅读 · 0 评论 -
多继承2升级
#include "stdafx.h"#include <iostream>using namespace std;//基类 A b:a c:a d:public a,public bclass Furniture{ int weight;public: Furniture() //不允许使用virtual { cout << "Furniture create" << endl; } virtual ~Furniture()原创 2020-09-25 01:35:11 · 72 阅读 · 0 评论 -
多继承(基类 A b:a c:a d:public a,public b)
#include "stdafx.h"#include <iostream>using namespace std;//基类 A b:a c:a d:public a,public bclass Furniture{ int weight;public: Furniture() { cout << "Furniture create" << endl; } ~Furniture() { cout << "Furni原创 2020-09-25 00:20:51 · 439 阅读 · 0 评论 -
网络编程所涉及的函数解析
I/O模型有哪些?阻塞式I/O、非阻塞式I/O、I/O复用、信号驱动I/O、异步I/OUDP与TCP应用的区别?UDP是无连接的、不可靠的数据报协议TCP是面向连接的,提供可靠的字节流typedef unsigned short sa_family_t;//通用地址族#include <sys/socket.h>struct sockaddr{sa_family_t sa_family; /* 地址族 /char sa_data[14]; / 地址值,原创 2020-09-24 14:26:43 · 143 阅读 · 0 评论 -
C与C++的存储区
c++存储区全局变量与静态变量区、常量区、局部变量区(栈)、动态存储区(堆)、自由存储区1、全局变量与静态变量区 —》存放全局变量、静态变量,程序运行结束后释放2、常量区(文本区) —》存放常量3、局部变量区(栈) —》存放局部变量、函数参数。由编译器控制,自动分配和释放4、动态存储区(堆) —》malloc/free在堆存储区上申请和释放内存,由人控制5、自由存储区 —》new/delete/delete [] 在自由存储区(是一种概念抽象,具体取决于底层实现)上申请和释放内存,由人控制原创 2020-09-22 22:33:58 · 88 阅读 · 0 评论 -
STL find查找STL容器
#include <iostream>#include <algorithm>#include <vector>#include <map>#include <list>using namespace std;int main () { //STL find array int nArr[5] = {10,20,30,40,50}; int *p = nullptr; p = find(nArr,nArr+4,30);原创 2020-09-16 11:12:57 · 226 阅读 · 0 评论 -
STL算法for_each遍历STL容器
#include <iostream>#include <algorithm>#include <vector>#include <map>using namespace std;void Func(int i){ cout << i << endl;}struct myC{ void operator()(int i) { cout << i << endl; }}myO;原创 2020-09-16 10:30:09 · 357 阅读 · 0 评论 -
libcurl--vc10推送相关代码
std::string sUrl = sUrl + m_sIP + m_sUrlPath; //http://10.10.1.10:8091 + /regist/pathcurl_easy_setopt(this->m_pCurl, CURLOPT_URL, (char*)sUrl.c_str());curl_easy_setopt(this->m_pCurl, CURLOPT_SSL_VERIFYPEER, false); // https请求不验证证书和hostscurl_easy_原创 2020-09-15 17:13:56 · 102 阅读 · 0 评论 -
explicit 防止隐式转换
explicit 类名(): //构造函数前加explicit原创 2020-09-15 16:50:47 · 193 阅读 · 0 评论 -
多态-- 父类指针指向子类--子类继承父类
#ifndef __CDT_H__#define __CDT_H__#include<iostream>using namespace std;class CMyBase{public: CMyBase(){cout << "父类begin create" << endl; foo();this->foo();} virtual ~CMyBase(){cout << "父类begin delete" << endl;}原创 2020-09-10 23:45:41 · 254 阅读 · 0 评论 -
std::string查找字符串并替换
std::string str ="dh hog hui"; int ret = str.find("hog"); //下标为4开始 str.replace(ret,3,"hhh"); //3是hong.length() std::cout << str.c_str() << std::endl;原创 2020-09-08 11:31:14 · 4470 阅读 · 0 评论 -
vc++ 将编译输出文件放到指定的目录,调试环境指向指定目录
原创 2020-09-04 10:37:43 · 473 阅读 · 0 评论 -
将指针的地址作为函数参数
void func(unsigned char** buf){ std::cout << "&buf: " << &buf << std::endl; std::cout << "buf: " << buf << std::endl; std::cout << "*buf : " << *buf << std::endl; std::cout << "**buf:原创 2020-08-31 11:27:32 · 461 阅读 · 0 评论 -
已知一串地址,访问该地址的值
int main() { const char* zb = "113.057606,22.509513"; const char** p = &zb; unsigned char* p1 = (unsigned char*)&zb; char* pAdd = (char*)0x0032fdd4; printf("%s\n",&zb); printf("%s\n",zb); char** pp = (char**)p1; printf("%原创 2020-08-28 18:43:44 · 166 阅读 · 0 评论 -
字符串substr与find_first_of
int main() { std::string zb = "113.057606,22.509513"; std::string t = zb.substr(0,zb.find_first_of(',')); std::string s = zb.substr(zb.find_first_of(',') + 1, zb.length()); printf("%s-%s",t.c_str(),s.c_str()); return 0;}原创 2020-08-27 19:07:56 · 300 阅读 · 0 评论 -
合并两个map,将map2拼到map1结尾
#include <iostream>#include <map>int main() { std::map<int,int> map1; map1[0] = 1; map1[2] = 3; std::map<int,int> map2; map2[4] = 5; map2[6] = 7; //这种方式遇到相同的key时保留k1的值 //map2的值不会被清掉 map1.insert(map2.begin(),map2原创 2020-08-27 16:35:49 · 494 阅读 · 0 评论 -
tinyxml2解析xml字符串以及将字符串转换为xml
#include "tinyxml2.h"#include <iostream>void lineXML(){ std::string buf = ""; tinyxml2::XMLDocument doc; tinyxml2::XMLDeclaration* declaration = doc.NewDeclaration(); doc.InsertFirstChild(declaration); //InsertFirstChild //-----------------原创 2020-08-13 17:45:31 · 2232 阅读 · 0 评论 -
编译curl支持https(curl、openssl、perl)
curl-7.71.0(最好下载最新的)openssl-1.1.1fvs环境:20101.官网下载libcurl的源码(百度搜索libcurl即可找到)直接编译是默认不支持openssl的,所以我们使用vs2010(x64)本机工具命令提示符执行命令2.官网下载perl环境,因为openssl的执行命令需要用到perl环境。下载完后安装(傻子安装方式)这里不做过多解释,需要注意的是如果openssl的执行编译nmake的过程中一直卡在某个文件一直编译不过则到官网下载更低的版本就行。3.官网下原创 2020-08-13 10:56:24 · 821 阅读 · 0 评论 -
Error:PCH警告:标头停止点不能位于宏或#if块中。未生成Intellisense PCH文件
//Error:PCH警告:标头停止点不能位于宏或#if块中。未生成Intellisense PCH文件#ifndef __POST_GETHEALTH_H__#define __POST_GETHEALTH_H__#include <iostream>class CHttpClient{};#endif//修改 加#pragma once#pragma once#ifndef __POST_GETHEALTH_H__#define __POST_GETHEALTH_原创 2020-08-11 17:27:19 · 1357 阅读 · 0 评论 -
splice截取list中指定数量的值
int main(){ list<int> mylist1, mylist2; list<int>::iterator it; // set some initial values: for (int i=1; i<=4; i++) mylist1.push_back(i); // mylist1: 1 2 3 4 it = mylist1.begin(); advance(it,3); mylist2.splice(mylist2.end(原创 2020-07-27 18:41:42 · 406 阅读 · 0 评论 -
map「int,int*」
#include "stdafx.h"#include <map>int main(){ std::map<int,int*> m_peoplePhotoId; int t[8] = {1,2,3,4,4,5,6,7}; m_peoplePhotoId.insert ( std::pair<int,int*>(0,t) ); std::map<int,int*>::iterator tmp = m_peoplePhotoId.find(0);原创 2020-07-10 14:39:11 · 905 阅读 · 0 评论 -
GetTickCount()
C/C++头文件:winbase.hwindows程序设计中可以使用头文件windows.hunsigned long tick = GetTickCount();原创 2020-07-08 11:01:18 · 417 阅读 · 0 评论 -
linux/windows/QT下文件操作FILE、iofstream
c语言文件的读取和写入:文件打开类型r 打开一个已有的文件,允许读取w 打开一个文本文件,允许写入,如果文件不存在则创建。如果文件存在,写入内容将覆盖原有内容a 打开一个文本文件,以追加模式写入文件,如果文件不存在,则创建新文件。r+ 打开一个文本文件,允许读写文件w+ 打开一个文本文件,允许读写文件,如果文件不存在,则创建。如果文件存在,先清空文件内容,再写入a+ 打开一个文本文件,允许读写。文件不存在,则创建。如果文件存在,读取从头读取,写入以追加模式写入ubuntu下c语言写文件:原创 2020-06-16 16:10:58 · 764 阅读 · 0 评论 -
windows下查询端口对应的服务名
查询端口对应的PIDnetstat -aon|findstr "8090"查询PID对应的服务tasklist|findstr "6860"查看IP对应的机器名nbtstat -A 172.18.29.75服务器上被占用的所有端口号netstat -ano原创 2020-06-16 10:41:01 · 2793 阅读 · 0 评论 -
检查身份证是否合格
bool getPeopleInfoByIDCode(int peopleId, std::string &yearBirth, std::string &sex) { std::string idCode; idCode = getIDCodeByPeopleId(peopleId); //idCode为身份证号 char verifyCode[12] = "10X98765432"; //将字符型数组转为整形数组 int nIdCode[19] = {0},nve原创 2020-05-20 11:16:19 · 320 阅读 · 0 评论 -
嵌入式系统学习
学习笔记嵌入式系统即嵌入式计算机系统。它是不以计算机面目出现的“计算机”,这个计算机系统隐含在各类具体的产品之中,这些产品中,计算机程序起到了重要作用。包含硬件 软件 机械装置分类按应用范围分为电子系统智能化类、计算机应用延伸类特点1.不以计算机面目出现2.需要专用工具和方法3.使用MCU设计系统4.涉及各种软硬件知识学习困惑:1.选微处理器还是应用处理器作为入门芯片?选择微控制器,且从不操作系统的学起2.开始学习时,是无操作系统NOS、实时操作系统RTOS、还是一原创 2020-05-11 11:24:10 · 207 阅读 · 0 评论