![](https://img-blog.csdnimg.cn/20191227095827404.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
C++s
C++总结
qq_26697045
这个作者很懒,什么都没留下…
展开
-
Mysql数据库:操作方法与C++接口
1. 安装sudo apt-get install mysql-server mysql-client libmysql++-dev2. 查看默认登录信息sudo cat /etc/mysql/debian.cnf3.终端操作数据库登录数据库sudo mysql -u root -p查看已有数据库列表show databases;创建名字为library的数据库CREA...原创 2019-12-26 17:56:43 · 146 阅读 · 0 评论 -
C++:常用函数
#ifndef _UTILS_HPP_#define _UTILS_HPP_#include <unistd.h> // access F_OK#include <stdlib.h> // system#include <sstream> // ostringstream#include <assert.h>#include <v...原创 2019-12-10 11:23:10 · 236 阅读 · 0 评论 -
C++:读写json
C++:读写json1. 使用方法1. 使用方法 下载jsoncpp后只保留src和include,把它作为一个链接库用。附件包含所有代码和示例。原创 2019-11-28 13:02:59 · 145 阅读 · 0 评论 -
C++:文件操作
C++:文件操作1. 判断文件和文件夹是否存在并决定是否创建文件夹1. 判断文件和文件夹是否存在并决定是否创建文件夹 函数access可以判断文件或文件夹是否存在,mkdir可以创建文件夹,但不能递归创建。#include <iostream>#include <unistd.h>#include <sys/stat.h>using namesp...原创 2019-11-14 14:01:15 · 148 阅读 · 0 评论 -
C++:类型转换
C++:类型转换1. 转为string1. 转为stringtemplate<typename T> string toString(const T& t){ ostringstream oss; oss << t; return oss.str(); }原创 2019-11-08 13:46:16 · 85 阅读 · 0 评论 -
C++:万能指针void*
C++:万能指针void*1. void*指针1. void*指针 void*指针可以指向基本数据类型和复合数据类型,下面的例子是分别指向整型和类。#include <iostream>using namespace std;class A { public: void fun() { cout << "Hello!" << endl;...原创 2019-11-06 10:58:14 · 631 阅读 · 0 评论 -
C++:读取linux进程信息
在ubuntu上使用C++读取进程信息,包括内存占用、CPU时间等。原创 2019-10-23 16:16:33 · 1680 阅读 · 1 评论 -
C++:多线程std::thread
C++:多线程std::thread1. 线程的创建和终止2. 线程的参数传递1. 线程的创建和终止 在main函数中,创建线程并控制线程结束:#include <iostream>#include <thread>#include <unistd.h>using namespace std; void fac() { while(true)...原创 2019-10-22 15:22:32 · 360 阅读 · 3 评论 -
C++:读写csv文件
C++:读写csv文件#include <iostream> #include <fstream>using namespace std;int main() { ofstream outFile; outFile.open("../data.csv", ios::ate); for(int i=0; i<5; i++) { outFile &l...原创 2019-10-22 11:28:43 · 2263 阅读 · 0 评论 -
CMake:pkgConfig.cmake
CMake:pkgConfig.cmake1. OpenCVConfig.cmake语法1.1 指出OpenCV安装位置1.2 指出头文件位置1.3 指出库文件2. find_package查找 在CMake中,CMakeLists.txt项目配置文件。编译时,常需要包含库的头文件和连接库文件。以OpenCV为例,在CMakeLists.txt中使用find_package搜索OpenCV的头...原创 2019-10-20 01:53:05 · 1578 阅读 · 2 评论 -
编译安装GCC以使用C++新特性
为了使用C++17,编译安装高版本GCC并自定义安装位置。原创 2019-10-18 16:15:39 · 444 阅读 · 0 评论 -
C++:Qt开发
下载Qt并安装。 Qtcreator配置Qt版本:工具、选项、Kits、Qt Versions(添加安装位置的gcc_64/bin/qmake);工具、选项、Kits、构建套件、Qt版本(选择添加的版本)。 错误及解决 //错误找不到-lpulse-mainloop-glib找不到-lpulse//解决1.查找这两个文件:sudo find / -name libpulse-ma...原创 2019-05-07 22:13:44 · 249 阅读 · 0 评论 -
C++:函数指针/函数名与参数列表做参数
函数指针用于指向返回值类型和参数列表相同的函数,假设有两个返回值类型和参数列表相同的函数:string add(int a, int b){ cout<<a+b<<' '; return "add";}string sub(int a, int b){ cout<<a-b<<' '; return "sub";}一.普通函数指...原创 2019-04-25 21:02:04 · 2049 阅读 · 0 评论 -
linux C++ CPU亲和性
为了尽可能地降低多线程间的耦合性以提高速度,我们让不同CPU核心执行不同的线程。下面的程序可以指定哪个(些)核心去执行某个线程,主要部分是:cpu_set_t mask;CPU_ZERO(&mask);CPU_SET(i, &mask);pthread_setaffinity_np(pthread_self(), sizeof(mask), &mask);...原创 2019-04-22 17:44:49 · 5517 阅读 · 4 评论 -
C++:截取路径
#include <iostream>#include <string>using namespace std;int main(){ string s="abc/de/fgh/ijk/xyz.jpg"; size_t a,b; //获取最外层文件夹名 b=s.find_first_of('/'); cout<<s.substr(0, b)...原创 2019-01-20 16:48:25 · 1951 阅读 · 0 评论 -
C++:创建自己的命令
功能:在终端输入exe test,创建一个名为test的文件夹,里面有一个build文件夹和从指定目录拷贝过来的main.cc和CMakeLists.txt。#include <iostream>#include <unistd.h>#include <dirent.h>#include <sys/types.h>#include &l...原创 2019-01-20 10:10:24 · 403 阅读 · 0 评论 -
C++:搜索文件夹中某类型的文件
#include <iostream>#include <dirent.h>#include <map>#include <fstream>#include <iomanip>#include <opencv2/core/core.hpp>#include <opencv2/highgui/highgui....原创 2019-01-20 10:04:46 · 782 阅读 · 0 评论 -
C++:进制
一.赋值int i=011, //八进制:前面任意多个'0' j=11, //十进制 k=0x11; //十六进制二.输出%o %d %xoct dec hex原创 2019-01-19 11:07:55 · 241 阅读 · 0 评论 -
C++:析构
一.基类的析构函数一般声明为虚函数,否则派生类不被析构https://blog.csdn.net/hj605635529/article/details/53132916原创 2019-01-19 11:07:22 · 148 阅读 · 0 评论 -
C++:虚
1.虚继承机制中的虚基类:class B: public virtual A{};class C: virtual public A{};class D: public B, public C{};A为虚基类,public与virtual不分顺序.在D中B与C共享A.2.虚函数具有普通函数的性质,有函数体,子类可以重写覆盖。纯虚函数没有普通函数的性质,类内无函数体(类外可以有,C++...原创 2019-01-19 11:06:45 · 111 阅读 · 0 评论 -
C++:链表的创建、插入、删除、逆序、遍历
#include <iostream>#include <stdlib.h>#include <stdio.h>using namespace std;typedef struct node{ int data; struct node * next;}node;int main(){ void create(node * & l...原创 2018-12-07 14:46:49 · 271 阅读 · 0 评论 -
C++:多线程
这个程序演示的是三个线程读取图像、处理图像、保存图像的例子,并把它们封装成一个类。第一个线程从视频读取图像放入队列imgs,第二个线程从imgs读取图像并处理后放入队列processedimgs,第三个线程保存processedimgs中的图像。为了限制内存占用,限制imgs的大小为15,processedimgs的大小为25。project/lib.h#ifndef _LIB_H_...原创 2018-12-07 14:48:49 · 1187 阅读 · 0 评论 -
C++:多线程互斥访问资源的Demo
这个程序因为把线程的创建写在了构造函数里,不用显式启动线程,也因此有些臃肿。#include <iostream>#include <stdlib.h>#include <thread>#include <mutex>#include <math.h>#include <unistd.h>using name...原创 2018-12-07 14:52:15 · 422 阅读 · 0 评论 -
C语言:文件操作
#include <stdio.h>void fac(int x){ static FILE *fp; static flag=0; if(flag==0){ fp=fopen("coordinate.txt","w+"); flag=1; }else{ fp=fopen("coordinate.txt","a+"); } fprintf(fp,"%d\n...原创 2018-12-07 14:54:56 · 4206 阅读 · 2 评论 -
C++:文件操作:向文件追加内容
向文件写入:#include <stdio.h>int main(){ int i=4; FILE *fp; fp=fopen("intfile.txt","w"); if(!fp){ printf("Failed to creat file!\n"); exit(0); } for(i=1;i<101;i+=5) fprintf(fp,"%d...原创 2018-12-07 15:00:52 · 10801 阅读 · 0 评论 -
C++:内部排序
内部排序算法比较堆排序和归并排序时间一般。堆排序不稳定归并排序空间一般。 插入排序和冒泡排序有最好时间且稳定,但时间差。 快速排序空间差且不稳定。 直接选择排序时间差不稳定。 元素基本有序时,插入排序效率最高。实现插入、冒泡、快速、选择、堆、归并6种排序。为了简洁,把写成,所以下面的代码只适合整数排序。project/sub.h#ifndef _SUB_H_#d...原创 2018-12-07 16:39:06 · 180 阅读 · 0 评论 -
C++:类模板
#include <iostream>using namespace std;//class1class class1{ public: void run(){ cout<<s<<endl; } private: string s="This is a string of class1.";};//class2class c...原创 2018-12-08 13:37:08 · 113 阅读 · 0 评论 -
C++:读取Xtion
project/rgbd_xtion_cc.cpp#include <iostream>#include <algorithm>#include <fstream>#include <chrono>#include <OpenNI.h>#include <opencv2/core/core.hpp>#incl...原创 2018-12-08 14:06:27 · 320 阅读 · 0 评论 -
C++:利用视差图合成新视点
来自这篇博客,利用视差图和普通图像合成新视点:视差图图像#include <iostream>#include <string>#include <opencv2/opencv.hpp>using namespace std;using namespace cv;int index(int m, int n){ if...转载 2018-12-08 15:06:36 · 931 阅读 · 0 评论 -
C++:运算符重载
重载运算符的函数可以是成员函数也可以是非成员函数,但它至少含有一个类类型的参数:1.非成员函数例1.#include <iostream>using namespace std;class A{ public: int x=96;};int operator+(A a,int b){ return a.x+b;}int main(int argc...原创 2018-12-11 10:45:40 · 129 阅读 · 0 评论 -
C++:指针和引用
1.使用方法int x=1;ra、rb指向x,是x的另一个名字;定义ra、rb时一定要初始化。一旦初始化完成,引用将和它的初始值对象一直绑定在一起。 int &ra=x; int &rb=ra;pc存放变量x的地址,或者说pc是指向变量x的指针。 int *pc=&x; int *pd=pc;上面&x、&am...原创 2018-12-11 11:06:39 · 162 阅读 · 0 评论 -
C++一些笔记
/*1----------预编译宏*/#include<iostream>using namespace std;#define ABCint main(){ cout<<"1"<<endl;#ifdef ABC cout<<"2"<<endl;#endif cout<<"3"<<endl;...原创 2019-01-19 11:03:40 · 75 阅读 · 0 评论 -
C++:const关键字
一.说明1.const int和int const没有区别二.和指针的关系:以*号为分界,前部是被指对象的类型,后部是指针类型。按这个来说:1.指向常量的变量指针const int * p: p是一个变量指针(普通指针);p指向常量。 其实被指对象即可以是变量也可以是常量,只是p一厢情愿地认为它是常量,因此不能通过p修改它的值。2.指向变量的常量指针int * const p:...原创 2019-01-19 11:04:38 · 104 阅读 · 0 评论 -
C++:sizeof关键字
一.sizeof大小(64/32),基本类型和它们的引用的sizeof值相等,指针型在64位机上都是8。sizeof值 char(&) short(&) int(&) long(&) long long(&) float(&) double(&) long double(&) 指针...原创 2019-01-19 11:05:11 · 174 阅读 · 0 评论 -
C++:多态
一.虚函数1.形式:virtual 返回类型 函数名(参数列表);2.有定义3.含有虚函数的类可以像普通类一样使用:可以创建对象,虚函数可以被调用二.纯虚函数1.形式:virtual 返回类型 函数名(参数列表)=0;2.没有定义三.抽象(基)类1.在C++中,含有纯虚拟函数的类;在java中,含有抽象方法的类2.在C++和java中,都不能生成对象四.对比C++ ...原创 2019-01-19 11:05:45 · 129 阅读 · 0 评论 -
C++:访问控制
一.C++1.种类:public(公开的)、protected(仅向子类公开)、private(私有的)2.访问说明符对象:成员变量、成员函数、基类(不能修饰单个类的权限)3.访问控制可以被有限度的破坏,这就是friend关键字的作用,但是这种破坏是被严格限制的,必须是被破坏的类主动申请二.java1.种类:public(公开的)、protected(向同包和子类公开)、默认(向同包公开...原创 2019-01-19 11:06:12 · 313 阅读 · 0 评论 -
C++:CMakeLists.txt语法
CMakeLists.txt是CMake的配置文件,方便编译大型项目。我为自己常用的项目写了一个统一的模板,把常用的语法记录下来。使用的时候去掉对应的注释就可以。cmake_minimum_required(VERSION 2.8)project(pr)#编译选项#add_definitions("-DXXX")# ${CMAKE_SOURCE_DIR}: The directo...原创 2018-12-07 14:24:32 · 1851 阅读 · 0 评论