自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 收藏
  • 关注

原创 c++ 分割 字符串 技巧

笔记:c++字符串分割方法(一)std::string st = "ab/cd/ef,gh,sd,",tt;//中间的/,为分割字符std::string::size_type pos = 0; //位置记录int mark = 0;while ((pos = st.find_first_of(",/", pos))!=std::string::npos){ std::cout<<st.substr(mark, pos-mark)<<std::endl;//打印分割结果

2020-09-25 09:14:17 132

原创 QTreeWidgetItem自定义排序记录备忘

QTreewidgetItem ,自定义排序

2024-01-15 15:09:32 422 1

原创 如何设置QString字符串不同颜色

QString,字符串,颜色

2024-01-15 14:48:35 608

原创 Qt - 配置文件 ini 写入和读取

【代码】Qt - 配置文件 ini 写入和读取。

2024-01-15 13:47:32 348

原创 单例模板学习记录

单例类学习引用记录

2024-01-12 15:12:32 339

原创 erase删除时常见错误

主要是在利用erase删除,遍历的处理std::map<int ,string > test;std::map<int, std::string>::iterator it =test.begin();for(it ; it != test.end() ; ){ if(*it == 0) =>条件可以自己设置 { it = vecInt.erase(it); =>将删除后的指针重新指向it } else

2021-03-12 16:33:53 388

原创 c++进行文件复制

一、首先头文件的包括#include "Shellapi.h"#include "tchar.h"#pragma comment(lib,"shell32.lib") 二、字符的转换std::string 类型转换成 LPCWSTR 类型LPCWSTR stringToLPCWSTR(std::string orig){ size_t origsize = orig.length() + 1; const size_t newsize = 100; size_t converte

2021-03-01 14:27:03 4469

原创 xml 读取字符串出现乱码转换

xml 读取 TiXmlElement * elem = nodeElem->FirstChildElement(); std::string ss = elem->Value();//标签值 for (elem; elem != NULL; elem = elem->NextSiblingElement()) {//遍历 TiXmlAttribute *pAttr = elem->FirstAttribute();//第一个属性 std::string

2021-01-18 20:13:49 568

原创 Json的解析和生成

json:{ "shemename":"方案", "eventname":"事件", "name":"lucy" "lucy": { "age":17, "gender":"female" } "course": [ "math", "chinese", "English" ]}//读取bool readJson(){ bool res; JSONCPP_STRING errs; Json::Value root; Json::Ch

2020-12-01 14:55:14 256

原创 互斥锁

mutex m;//定义锁对象m.lock();//上锁sharedVariable= getVar();m.unlock();//释放锁{ std::mutex m,//定义对象 std::lock_guard<std::mutex> lockGuard(m);//上锁 生命周期结束自动解锁 sharedVariable= getVar();}

2020-11-27 13:55:27 86

原创 SHELLEXECUTEINFO学习

SHELLEXECUTEINFO结构:主要用在mfc中 头文件#include “afxdialogex.h”typedef struct _SHELLEXECUTEINFO { DWORD cbSize; ULONG fMask;//标志数组 设置成员的有效性 HWND hwnd;//可选 可选。执行ShellExecuteEx的窗口句柄,可设为NULL LPCTSTR lpVerb;//指定执行的动作 LPCTSTR l

2020-11-27 10:58:21 3330

原创 xml和sqlite3引用

xml在c++中引用直接将tinyxml的头文件和源文件添加到工程中直接引用也可以将xml的功能封装在一个类中,生成dll 利用动态链接库进行引用sqlite3的引用首先到官网下载sqlite3的相关文件生成lib文件将相关的文件拷贝到指定的文件夹中在工程链接器的输入的附加依赖项中添加dll、在常规中添加目录在源文件中添加头文件之后就可以使用了...

2020-11-06 17:37:49 320

原创 xml使用笔记(一)

一、xml文件声明<?xml version=”1.0” standalone=”yes” encoding=”UTF-8”?>version standalone encoding 是三个特性version : 说明这个文档符合1.0规范standalone : 说明文档在这个文件中还是需要从外部导入,standalone的值设置为yes说明所有的文档都在这一文件中完成enconding : 指文档字符的编码...

2020-11-03 17:00:42 147

原创 系统时间的获取和转换

char tmp[64];time_t ptime;time(&ptime);strftime(tmp,sizeof(tmp),"%Y-%m-%d %H:%M:%S",localtime(&ptime));return tmp;

2020-11-03 13:41:59 494

原创 MFC通信

CSocket类是由CAsyncSocket继承而来的,在MFC中CAsyncSocket 逐个封装了WinSock API,每个CAsyncSocket对象代表一个Windows Socket对象,CSocket类是CAsyncSocket的派生类, 继承了它封装的WinSock API。(1)构建CAsyncSocket对象`直接构建对象:CAsyncSocket sock; //使用默认参数产生一个字节流套接字Sock.Create();//生成一个socket句柄 字节流套接字指定端口:

2020-11-03 12:04:29 316

原创 strtok进行字符串分割

char str[80] = "This is - www.runoob.com - website"; /* 获取第一个子字符串 */ char * tmp = strtok(str, '-'); /* 继续获取其他的子字符串 */ while( tmp ) { std::cout<<tmp<<std::edl; tmp = strtok(NULL, '-'); }可以理解成固定写法也可以理解:...

2020-10-29 14:25:56 158

原创 myString类

class myString{public: myString() :m_start(nullptr),m_end(nullptr) {} myString(std::initializer_list<char> li) { size_t st=li.size(); m_start = a.allocate(st);//空间的首地址 m_end = uninitialized_copy(li.begin(),li.end(), m_start); } myString(

2020-10-09 17:33:15 258

原创 strVec类

class strVec{public: strVec() :elem(nullptr),first_free(nullptr),cap(nullptr) {}//默认初始化 strVec(const strVec & str)//拷贝构造 { elem = alloc.allocate(str.end() - str.begin());//开辟出一个空间 p 指向首地址 first_free=cap=uninitialized_copy(str.begin(), str.e

2020-10-09 14:38:26 188

原创 左 / 右值 引用 简单记录

首先,区分左值和右值的取别左值:可以取地址 ,有名字,非临时的变量 eg:变量,函数返回值的引用,const对象右值:不能取地址,没名字,临时的变量 eg:立即数,函数返回值传统的左值引用:int a=10;int & b=a;//之后可以通过b 修改a的值但是int & c=10;//这个是错误的,因为立即数存放在寄存器上,而不在内存中const int & c =10;//是可以成功的等价于:const int tp=10;//在内存中开辟了临时空间

2020-10-09 13:49:15 93

原创 unique_ptr简单使用

一、初始化std::unique_ptr<int> p1(new int(12));std::unique_ptr<string> p1(new string(""));二、指针转移std::unique_ptr<int> p1(new int(12));std::cout << &(*p1) << std::endl;//std::cout << p1 << std::endl;无法这样直接打印st

2020-10-06 16:33:54 370

原创 shared_ptr 传值和传引用

一、shared_ptr 对象作为值参数void fun(std::shared_ptr<int> ptr){ std::cout << ptr << endl;}int main(){ std::shared_ptr<int> ptr = make_shared<int>(55); std::cout << ptr << std::endl; fun(ptr); std::cout <<

2020-10-06 10:11:24 4434 1

原创 shared_ptr简单使用

一、shared_ptr 初始化 shared_ptr<int> p1=make_shared<int>();//初始化为0 *p1=20;//像平常指针一样使用 shared_ptr<int> p2=make_shared<int>(43); shared_ptr<string> p3=make_shared<string>("hello"); shared_ptr<string> p4=make_shared

2020-09-30 17:53:11 557

原创 initializer_list使用

一 、函数的使用 void Fprint(initializer_list<int> list) { auto it = list.begin(); for (it; it != list.end(); ++it) { std::cout << *it << std::endl; } }引用:Fprint({1,2,3,4,5,6});结果二、普通类的使用class Ctest{public: Ctest() {} Cte

2020-09-30 10:02:46 270

原创 map和multimap基本知识

一、pair操作创建和初始化(四种) pair<string,int> p1; p1.make_pair("lili",40); pair<string,int> p2("lili",40); pair<string,int> p2(p1); pair<string,int> p3; p3.first="lili"; p3.second=40; 一 、 map常用操作(1)初始化 map<string,int>

2020-09-29 10:24:21 154

原创 accumulate 求和

#include<numeric> #include<string>int 求和 vector<int> vec; int sum=accumulate(vec.begin(),vec.end(),0); 前两个参数是范围,也可以用cbegin() / cend() 第三个参数表示和的初始值以及类型计算从标准输入中读取的数据的和 istream_iterator<int> in(cin),eof; int sum=accumulate(.

2020-09-27 15:11:33 238

原创 istream_iterator简单用法

istream迭代器利用输入流迭代器istream_iterator进行文件操作: std::ifstream i_file("data.txt"); //打开文件 istream_iterator<string> getStr(i_file); //从i_file读取字符串 istream_iterator<string> eof;//尾后迭代器 while (getStr != eof)//判断是否到达尾部 { std::cout << *getS

2020-09-27 14:58:15 1495

原创 容器去重

容器的去除重复: 第一步:排序 第二步:将重复放到尾部 第三步:删除重复的部分代码实例如下:void mysort(vector<int> & v){ sort(v.begin(),v.end());//排序将相同的元素放在一起 auto end_unique=unique(v.begin(),v.end()); //将重复的放到最后,不重复元素的尾部 v.erease(end_unique,v.end());//将重复的部分删除}...

2020-09-25 19:40:06 337

原创 copy()函数 equal()函数 back_inserter()函数 replace()和replace_copy()

STL 算法copy用法 using namespace std; int arr[7] = { 1,2,3,4,5,6,7 }; vector<int> vec; vec.resize(7); //一定要先分配空间,否则会报错 copy(arr, arr + 7, vec.begin()); 或者 copy(begin(arr), end(arr), vec.begin()); //将数组中的元素拷贝到vec中 //第一个参数和第二个参数是范围,第三个参数是目的容器的起始

2020-09-25 19:04:04 157

原创 find 查找特定值

一、vector中查找特定值如果搜索成功,则返回对应的迭代器如果搜索失败,则返回第二个参数的迭代器 using namespace std; vector<int> v = { 1,2,3,4,5,6,7 }; int val = 4; auto result = find(v.begin(), v.end(), val); //返回的是指向4 的迭代器 cout << *result << endl;二、list中查找给定的string串反向迭代器

2020-09-25 12:30:56 407

原创 c++ 基础知识(一):cin 死循环的解决方法 STL中的count和count_if 函数 求和函数accumulate

**io:std::cin 标准输入 std::cin >> a; 注意死循环的解决方法std::cout 标准输出 std::cout << a << std::endl;std::cerr 输出警告和错误消息std::clog 输出信息std::endl 冲刷缓存区 是数据真正写入到输出流中作用域运算符:指定命名空间命名空间:避免命名冲突`**cin 死循环的解决方法: int a = 0; while (!(std:

2020-09-25 11:30:05 732

原创 Vu单元测试-------笔记(一)

**Vu单元测试工具,实现了彻底的表格驱动,只需要在表格中填写数据就可以直接形成测试用例,点击运行直接进行测试,测试代码以及测试报告就可以自动生成。** (1)支持可视编程,具有很好的自动性 Vu是以可视编程为核心,由工具完成大部分工作的单元测试工具![在这里插入图片描述](https://img-blog.csdnimg.cn/20200707092621363.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGV...

2020-07-07 09:46:12 1213

原创 学习笔记(二)之字符常量和字符串常量

一、字符(1)用单引号括起来,例如:’a’、’1’、’A’等(2)以ASCII编码的二进制形式存储到内存当中,占一个字节(3)字符型是一个短的整型,可以参加算术运算(4)输出有两种格式:①输出字符本身用%c②输出字符的ASCII编码值用%d(5)字符型:char ,[signed] char 范围:-128—127 ,unsigned char 0—255二、ASCII编码...

2019-07-07 10:49:02 1837

原创 学习笔记(一)一些简单的概念

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...

2019-07-02 20:55:23 114

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除