C/C++
文章平均质量分 62
thistle2012
这个作者很懒,什么都没留下…
展开
-
Ubuntu配置基于aarch64的Qt编译环境
下载编译器Linaro Releases这里面版本很多,主要是大小端、armv7/armv8、32/64位、裸机/linuxdeng区别对于32位平台,下载如下,Linaro Releases对于64位平台,下载如下,Linaro Releases将编译器解压、重命名和复制到指定目录,32位平台的编译器gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf.tar.xz操作如下解压命令:$ tar -xv原创 2022-01-14 20:19:48 · 6489 阅读 · 5 评论 -
CentOS+QT+KAFKA开发环境部署及测试
CentOS+QT+KAFKA开发环境部署及测试本文档记录了在CentOS环境下通过QT开发KAFKA程序的步骤,关于CentOS中安装QT集成开发环境,不再赘述。此处默认是在QT编译环境已经完备的情况下,如何配置KAFKA的编译环境及测试实例演示。安装librdkafkalibrdkafa是一个开源的KAFKA客户端,由C/C++实现,提供了生产者、消费者、管理者的客户端,是一款稳定的、高性能的消息中间件。对于生产者每秒可发送百万量级的消息数,对于消费者每秒可以消费掉3百万量级的消息数。下载原创 2021-07-12 15:03:58 · 1937 阅读 · 0 评论 -
VS2015编译SNMP++源码
下载SNMP++开发包,官网地址:http://www.agentpp.com/,目前最新的版本为snmp++-3.4.5.tar.gz,如果需要支持V3版本的数据传输功能,还需要下载libdes,目前的版本为libdes-l-4.01a.tar.gz。还要下载MS VC++12 Project Files for SNMP++,因为源码中没有项目文件。将下载的三个压缩包解压之后的文件夹放在同级目录下,同时将snmp++-3.4.5重命名为snmp++,将vs2013重新命名为vs2015在vs原创 2021-03-02 16:36:14 · 848 阅读 · 0 评论 -
程序异常处理
标准程序库异常处理#include #include #include using namespace std;//给出三角形三边长,计算三角形面积double area(double a, double b, double c) throw (invalid_argument){ //判断三角形边长是否为正 if (a <= 0 || b <= 0 || c <= 0)原创 2015-07-12 19:30:58 · 454 阅读 · 0 评论 -
顺序容器的基本操作
顺序容器的基本操作顺序容器向量(vector)双端队列(deque)列表(list)单向链表(forward_list) (以上四种在逻辑上可看作是一个长度可扩展的数组)数组(array)元素线性排列,可以随时在指定位置插入元素和删除元素。必须符合Assignable这一概念(即具有公有的拷贝构造函数并可以用“=”赋值)。array对象的大小固定,f原创 2015-07-02 10:51:02 · 533 阅读 · 0 评论 -
关联容器,集合set和映射map
1.集合(set)集合用来存储一组无重复的元素。由于集合的元素本身是有序的,可以高效地查找指定元素,也可以方便地得到指定大小范围的元素在容器中所处的区间。输入一串实数,将重复的去掉,取最大和最小者的中值,分别输出小于等于此中值和大于等于此中值的实数#include #include #include #include using namespace std;原创 2015-07-02 11:59:57 · 544 阅读 · 0 评论 -
函数对象
函数对象一个行为类似函数的对象可以没有参数,也可以带有若干参数其功能是获取一个值,或者改变操作的状态。例普通函数就是函数对象重载了“()”运算符的类的实例是函数对象1.普通函数对象#include #include //包含数值算法头文件using namespace std;//定义一个普通函数int mult(int原创 2015-07-02 20:09:19 · 362 阅读 · 0 评论 -
输入迭代器和输出迭代器的使用
STL模板库中迭代器的使用#include #include #include #include using namespace std;//将来自输入迭代器的n个T类型的数值排序,将结果通过输出迭代器result输出template void mySort(InputIterator first, InputIterator last, OutputIterator resul原创 2015-07-02 09:04:38 · 2729 阅读 · 0 评论 -
函数适配器
函数适配器绑定适配器:bind1st、bind2nd将n元函数对象的指定参数绑定为一个常数,得到n-1元函数对象组合适配器:not1、not2将指定谓词的结果取反函数指针适配器:ptr_fun将一般函数指针转换为函数对象,使之能够作为其它函数适配器的输入。在进行参数绑定或其他转换的时候,通常需要函数对象的类型信息,例如bind1s原创 2015-07-02 20:21:53 · 609 阅读 · 0 评论 -
适配器,栈和队列
顺序容器的适配器以顺序容器为基础构建一些常用数据结构,是对顺序容器的封装栈(stack):最先压入的元素最后被弹出队列(queue):最先压入的元素最先被弹出优先级队列(priority_queue):最“大”的元素最先被弹出1.利用栈反向输出单词#include #include #include #include using namespac原创 2015-07-02 11:33:35 · 531 阅读 · 0 评论 -
分数类的实现
实现一个分数类,并重载其加减运算#include #include using namespace std;class Fraction{private: int a; //分子 int b; //分母 int divisor(int p, int q); //求最大公约数public: Fraction(){a=0;b=1;} //无参构造函原创 2015-06-08 21:15:25 · 1244 阅读 · 0 评论 -
数字方阵的旋转填充(递归方法)
数字方阵的旋转填充void FillMatrix(int matrix[N][N],int size,int num,int offset){ //matrix为总矩阵,size为剩余矩阵的大小,num为要填的第一个数,offset为剩余矩阵在总矩阵中的位置 //递归终止条件 if(size==0) return; //递归终止条件 i原创 2015-06-16 19:27:40 · 5073 阅读 · 4 评论 -
从点类派生圆类,再由圆类派生圆柱类
从点类派生圆类,再由圆类派生圆柱类#include #include using namespace std;const double pi=3.14;class Point{private: int x, y; //点的x和y坐标public: Point( int = 0, int = 0 ); // 构造函数 void SetPoint( int,原创 2015-06-06 23:10:22 · 4114 阅读 · 0 评论 -
运算符重载/虚函数/dynamic_cast类型转换
1.基本的运算符重载#include using namespace std;class Point{ int _x, _y;public: Point(int x = 0, int y = 0) :_x(x), _y(y){} Point& operator++(); Point operator++(int); Point& operator--(); Point ope原创 2015-06-05 11:15:54 · 1370 阅读 · 0 评论 -
类的继承与派生(虚拟继承Virtual)
类的继承与派生,由于派生类会完全继承基类的公有成员。如果从多个基类继承,那么就会存在同一个基类的成员会被继承多个,造成成员变量的冗余。未解决这个问题,C++提供了虚拟继承的机制,已达到消除成员变量的冗余。#include using namespace std;class Vehicle{public: int MaxSpped; int Weight; void Run(){原创 2015-05-19 14:49:18 · 1416 阅读 · 0 评论 -
排序并插入/常见的排序算法
题目内容:编写程序,在主函数中定义一个有10个元素的整型一维数组,用户输入9个数据,调用函数,对数组元素进行从小到大排序后,在函数中输入一个数,插入到数组中正确的位置,并输出。输入格式:9个整数和1个整数输出格式:10个整数输入样例:2,3,1,5,6,76,89,31,907原创 2015-04-15 17:34:20 · 1477 阅读 · 0 评论 -
字符串输入输出流
1.字符串输入流( istringstream)用于从字符串读取数据在构造函数中设置要读取的字符串功能支持ifstream类的除open、close外的所有操作典型应用将字符串转换为数值#include #include #include using namespace std;template inline T fromSt原创 2015-07-12 16:30:54 · 948 阅读 · 0 评论 -
动态数组的模板类/求指定个数的素数
动态数组的模板类#ifndef CARRAY_INCLUDE_H#define CARRAY_INCLUDE_H#include template class CArray{ //数组类模板的定义private: T* list; //用于存放动态分配的数组内存首地址 int size; //数组的大小(元素的个数)public: CArray(int sz = 50原创 2015-06-15 16:01:08 · 683 阅读 · 0 评论 -
Visual Studio2010与OpenGL基础绘制
本例在Visual Studio 2010环境下使用OpenGL,提供一个基本的开发应用程序框架。第一步:OpenGL基础设置:1.创建一个单文档的MFC应用程序,命名为TestGL,然后在TestGLView.h头文件中添加以下两条include包含语句:#include "gl/gl.h"#include "gl/glu.h"2.设置程序为静态运行方式执行菜单命令:项目-原创 2015-08-23 17:11:48 · 2808 阅读 · 0 评论 -
QT开发OpenGL程序框架
1.开发平台:Win7系统,Qt Creator5.7.0社区版;2.环境配置:1).下载OpenGL开发库;2) .分别将OpenGL开发库中的.h文件(如glut.h)拷贝至QT的安装路径\...\include\QtOpenGL\目录下;3) .分别将OpenGL开发库中的.lib文件(如glut.lib,glut32.lib)拷贝至QT的安装路径\...\lib\目录下;...原创 2017-03-30 21:57:44 · 2680 阅读 · 0 评论 -
C++ 实现太阳系行星系统
本次实验的初始视角在 (x, -x, x) 处,所观察物体(太阳)的位置在 (0,0,0),通过 gluLookAt 函数来设置视角的九个参数原创 2016-06-25 21:03:49 · 8945 阅读 · 0 评论 -
完数/最大公约数/最小公倍数/素数/回文数
一个正整数的因子是所有可以整除它的正整数。而一个数如果恰好等于除它本身外的因子之和,这个数就称为完数。例如6=1+2+3(6的因子是1,2,3)。#include #include int IsPerfect(int x);int main(){ int m; printf("Input m:"); scanf("%d", &m); if (IsPer原创 2015-04-08 10:33:25 · 2782 阅读 · 0 评论 -
调用系统命名
有时候需要在程序中调用系统命令行命令,由system()函数实现,比如在CMD窗口中清屏的命令为“cls”,则可以使用system("cls")实现对控制台的清屏工作。#include using namespace std;int main(int argc, char** argv) {// cout<<"1.Look"<<endl;// cout<<"2.Add"<<endl;原创 2016-04-04 17:15:49 · 491 阅读 · 0 评论 -
随机数生成
计算机生成随机数的方法是线性同余法,通过特定的算法生成一系列毫无规则的数字,让用户看起来好象是随机数,但本质上是伪随机数。示例一:#include #include using namespace std;int main(int argc, char** argv) { cout<<"本机的最大随机数为:"<<RAND_MAX<<endl; for(int i=0;i<5;++原创 2016-04-03 10:37:58 · 643 阅读 · 0 评论 -
VTK从CSV文件中读取数据
CSV也是一种文本文件,类似于TXT文本文件。但是由于CSV文件的特殊用途,本身可以由Excel办公软件获得,也有广泛的用途。以下示例演示采用C++方式读取CSV文件的点云数据,然后借助VTK可视化管线,渲染读取的点云数据。#include #include #include #include #include #include #include #include #inclu原创 2016-03-08 20:27:42 · 2098 阅读 · 0 评论 -
C++读取CSV文件中的数据
CSV文件是一种文本文件,表示的是Excel表格数据,可以由办公软件Excel轻松生成。为了在程序中使用Excel数据,就需要以文本的形式操作Excel数据,具体就是操作CSV表格数据。如下所示,#include #include #include #include #include using namespace std;//删除字符串中空格,制表符tab等无效字符stri原创 2016-03-08 16:24:54 · 65402 阅读 · 4 评论 -
文件操作:洗牌/统计文本文件单词/复制mp3文件/多个文件合并成一个文件
1.将随机洗牌结果保存到文件中#include #include #include #include #include using namespace std;#define SUIT_NUMBER 4#define FACE_NUMBER 13class Card{public: string suit; //花色 string face; //面值}原创 2015-06-09 08:56:11 · 795 阅读 · 0 评论 -
VTK从TXT文件中读取数据
从TXT文本文件中读取数据的方式有很多,以下介绍两种。1.采用VTK官方提供的类vtkSimplePointsReader可以方便读取,但是该方法要求文本文件必须是规整的,如下示例读取随机点云数据。#include #include #include #include #include #include #include #include int main( ){ /原创 2016-03-08 10:26:03 · 5534 阅读 · 2 评论 -
文件读写实例(MFC)
MFC简单的文件读写实例步骤如下:1.创建名为File的MFC单文档应用程序;2.在资源视图中打开菜单编辑器,添加一个菜单项“File”,并为其添加一个子菜单项"FileRW",设置ID为“ID_FILE_RW”;3.在视图类中,为菜单FileRW添加命令处理函数。4.处理函数的代码清单如下:void CFileView::OnFileRw(){ // TODO: Add原创 2015-01-28 15:07:10 · 1504 阅读 · 0 评论 -
位图读、写、显示的C++实现实例
对图像进行处理的前提是,要能实现对象的打开保存和显示,这是处理的前提。以下在VS2010中基于MFC的框架实现对位图文件的打开、保存和显示功能。第一步:打开MFC应用程序向导,创建一个单文档的MFC应用程序,向导中的其它参数均可保持默认。第二部:实现读写和显示功能:1.打开类视图,为CBMPTestView类添加以下5个函数,方法是右击CBMPTestView,在弹出的菜单中选择添加-原创 2015-08-22 21:56:44 · 4301 阅读 · 1 评论 -
文件的读写
1.二进制文件写:#include #include #include using namespace std;class CStudent{public: char szName[20]; int nScore;};int main(){ CStudent s; ofstream OutFile("C:\\students.dat",ios::o原创 2015-04-18 09:53:22 · 428 阅读 · 0 评论 -
嵌入式SQL应用(C语言)
MySQL为C语言用户提供了连接数据库的API,想要正常使用这些数据库,需要做到以下两点:1)包含这些API的声明文件,即mysql.h;2)让编译器找到这些API的可执行程序,即DLL库。以下在Visual Sudio 2010中,用C语言开发数据库。第一步,先创建名为xxgl的数据库,下面采用SQL命令的方式创建数据库和表,也可以在MySQL Workbench中采用图形化的方原创 2015-08-19 21:29:39 · 10909 阅读 · 0 评论 -
32位IP地址转换为点分10进制的IP地址
实现代码:#include#includeusing namespace std;bool check(char *str); //检查串中是否有0/1之外的字符int trans(char *str); //将0/1字符串转换成十进制bool check(char *str){ int i; for(i=0;i<32;i++) if(str[i原创 2015-06-03 16:05:17 · 6534 阅读 · 0 评论 -
指向函数的指针/返回指针的函数
函数指针表示指向某一函数的指针,如下所示,int add(int,int);int (*pf)(int,int);pf=add;注意,因为函数add有两个参数,所以pf指针也必须有两个参数;且函数add的两个参数均为int型,所以pf的两个参数也必须与之匹配。如下例,#include“stdio.h"#include "conio.h" int add(int,int原创 2015-01-28 15:12:33 · 801 阅读 · 0 评论 -
类模板
1.写一个 CMyostream_iterator 模板, 使之能和 ostream_iterator 模板达到一样的效果#include #include #include using namespace std;// 在此处补充你的代码templateclass CMyostream_iterator:public iterator{private: ostream原创 2015-04-24 20:39:09 · 839 阅读 · 0 评论 -
栈
STL编程#include #include using namespace std;void InitStack(stack &s, int n);void InitDest(stack &s, int n);void InitStack(stack &s, int n) //初始化原始数据栈{ for (int i = n; i > 0; i--) { s.pus原创 2015-04-15 22:58:16 · 400 阅读 · 0 评论 -
汉诺塔
在世界中心贝拿勒斯(在印度北部)的圣庙里,一块黄铜板上插着三根宝石针。印度教的主神梵天在创造世界的时候,在其中一根针上从下到上地穿好了由大到小的64片金片。不论白天黑夜,总有一个僧侣在按照下面的法则移动这些金片:一次只移动一片,不管在哪根针上,小片必须在大片上面。僧侣们预言,当所有的金片都从梵天穿好的那根针上移到另外一根针上时,世界就将在一声霹雳中消灭,而梵塔、庙宇和众生也都将同归于尽。#in原创 2015-04-08 21:44:08 · 440 阅读 · 0 评论 -
STL模板库list,vector
容器list的使用样例:#include #include #include using namespace std;class A{ //定义类A,并以友元函数重载<,==,<<private: int n;public: A(int n_){n=n_;} friend bool operator<(const A &a1,const A &a2);原创 2015-04-23 09:54:36 · 587 阅读 · 0 评论 -
递归与尾递归
以计算阶乘为例讨论普通递归与尾递归的区别:1.普通递归:#includelong Fact(int n); //普通递归计算阶乘long Fact(int n){ if(n<0) return -1; else if(n==0 || n==1) return 1; else return n*Fact(n原创 2015-04-08 22:46:45 · 452 阅读 · 0 评论 -
计算组合数
#includelong Comb(int m,int k);long Fact(int n);long Fact(int n){ int i; long result = 1; for(i=2;i<=n;i++) { result*=i; } return result;}long Comb(int m,int k)原创 2015-04-08 21:16:48 · 707 阅读 · 0 评论