![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
小帅比simon
热爱学习,想参与到改变世界的组织中!!
展开
-
移植QT5.7到嵌入式ARM
配置开发环境搭建NFS服务器检查内核是否开启NFS1)进入内核源码目录make menuconfig,进入菜单Networking support->Networking options-> TCP/IP networking。确保nfs的功能已经被打开 IP:BOOTP support2)进入File systems->Network File Systems 确保nfs加载可以被使用 R原创 2017-04-11 19:11:54 · 5407 阅读 · 0 评论 -
32STL之Set和multiset容器
STL之Set和multiset容器STL之Set和multiset容器setmultiset的简介对象的默认构造插入与迭代器元素排序函数对象functor的用法set对象的拷贝构造与赋值大小删除查找pair的使用小结1.set/multiset的简介set是一个集合容器,其中所包含的元素是唯一的,集合中的元素按一定的顺序排列。元素插入过程是按排序规则插入,所以不能指定插入转载 2017-06-20 20:57:40 · 396 阅读 · 0 评论 -
31STL之优先级队列priority_queue
STL之优先级队列priority_queueSTL之优先级队列priority_queue简介示例代码1.简介最大值优先级队列、最小值优先级队列优先级队列适配器 STL priority_queue用来开发一些特殊的应用2.示例代码int main(void){ priority_queue<int> p1; priority_queue<int, vector<in转载 2017-06-20 20:14:00 · 416 阅读 · 0 评论 -
30STL之List容器
STL之List容器STL之List容器简介对象的默认构造头尾的添加移除操作数据存取迭代器对象的带参数构造赋值大小插入删除反序排列小结1.简介list是一个双向链表容器,可高效地进行插入删除元素。list不可以随机存取元素,所以不支持at.(pos)函数与[]操作符。It++(ok) it+5(err) #include <list>2.对象的默认构造list采用采转载 2017-06-20 19:53:59 · 282 阅读 · 0 评论 -
29STL之Queue
STL之QueueSTL之Queue简介对象的默认构造push与pop方法对象的拷贝构造与赋值数据存取大小示例代码1.简介queue是队列容器,是一种“先进先出”的容器。queue是简单地装饰deque容器而成为另外的一种容器。 #include <queue>2.对象的默认构造queue采用模板类实现,queue对象的默认构造形式:queue<T> queT; 如:que转载 2017-06-20 19:39:40 · 324 阅读 · 0 评论 -
28STL之Stack
STL之StackSTL之Stack简介stack对象的默认构造stack的push与pop方法对象的拷贝构造与赋值数据存取stack的大小1.简介stack是堆栈容器,是一种“先进后出”的容器。stack是简单地装饰deque容器而成为另外的一种容器。 #include <stack>2.stack对象的默认构造stack采用模板类实现, stack对象的默认构造形式: st转载 2017-06-20 19:36:11 · 377 阅读 · 0 评论 -
27STL之Deque容器
STL之Deque容器STL之Deque容器简介deque对象的默认构造末尾的添加移除操作数据存取deque与迭代器deque对象的带参数构造赋值大小插入1.简介deque是“double-ended queue”的缩写,和vector一样都是STL的容器,deque是双端数组,而vector是单端的。deque在接口上和vector非常相似,在许多操作的地方可以直接替换。转载 2017-06-20 19:31:10 · 411 阅读 · 0 评论 -
26STL之Vector
STL之VectorSTL之Vector简介对象初始化容器大小尾部添加和移除数据存取迭代器1基本原理2双向迭代器3随机访问迭代器4与vector的配合使用插入删除相关示例代码1.简介 vector是将元素置于一个动态数组中加以管理的容器。可以随机存取元素(支持索引值直接存取,用[]操作符或at()方法,还支持迭代器方式存取)。 vector尾部添加或移除元素非常快转载 2017-06-20 19:07:10 · 319 阅读 · 0 评论 -
25STL之String类型
STL之String类型STL之String类型String概念初始化构造函数存取字符和char类型的转换比较操作字符串连接查找和替换删除和插入算法相关1.String概念 string是STL的字符串类型,通常用来表示字符串。而在使用string之前,字符串通常是用char*表示的。 string和char*的区别string是一个类, char*是一个指向字符的指针。转载 2017-06-20 18:55:39 · 624 阅读 · 0 评论 -
24STL理论基础
STL理论基础STL理论基础基本概念STL的优势容器 容器的分类主要有两种迭代器算法c标准库 C标准库的内容分为10类模板回顾简单示例代码1.基本概念STL(Standard Template Library,标准模板库)是惠普实验室开发的一系列软件的统称。虽然主要出现在C++中,但在被引入C++之前该技术就已经存在了很长的一段时间。 STL的从广义上讲分为三部分:alg转载 2017-06-20 18:54:51 · 392 阅读 · 0 评论 -
23IO流
IO流IO流流类库结构标准IO1标准输入2标准输出文件IO1文件流及其对象2文件的基本操作3对ASCII文件的操作4对二进制文件的操作1.流类库结构程序的输入指的是从输入文件将数据传送给程序,程序的输出指的是从程序将数据传送给输出文件。C++输入输出包含以下三个方面的内容:对系统指定的标准设备的输入和输出。即从键盘输入数据,输出到显示器屏幕。这种输入输出称为标准的输入输出,简称转载 2017-06-20 11:17:58 · 730 阅读 · 0 评论 -
33STL之Map和multimap容器
STL之Map和multimap容器STL之Map和multimap容器简介对象的拷贝构造和赋值插入与迭代器对象的拷贝构造和赋值大小删除查找1.简介map是标准的关联式容器,一个map是一个键值对序列,即(key,value)对。它提供基于key的快速检索能力。map中key值是唯一的。集合中的元素按一定的顺序排列。元素插入过程是按排序规则插入,所以不能指定插入位置。map的具转载 2017-06-20 21:20:29 · 520 阅读 · 0 评论 -
34STL之容器小结
STL之容器小结一、理论提高:所有容器提供的都是值(value)语意,而非引用(reference)语意。容器执行插入元素的操作时,内部实施拷贝动作。所以STL容器内存储的元素必须能够被拷贝(必须提供拷贝构造函数)。#define _CRT_SECURE_NO_WARNINGS#include <iostream>using namespace std;#include "vector"clas转载 2017-06-20 21:31:21 · 373 阅读 · 0 评论 -
44STL之遍历算法
STL之遍历算法STL之遍历算法for_eachtransform1.for_each()for_each: 用指定函数依次对指定范围内所有元素进行迭代访问。该函数不得修改序列中的元素。void show(const int &iItem){ cout << iItem;}main(){ int iArray[] = {0,1,2,3,4}; vector<i转载 2017-06-21 10:45:25 · 460 阅读 · 0 评论 -
43STL之集合算法
STL之集合算法set_union(),set_intersection(),set_difference()set_union: 构造一个有序序列,包含两个有序序列的并集。 set_intersection: 构造一个有序序列,包含两个有序序列的交集。 set_difference: 构造一个有序序列,该序列保留第一个有序序列中存在而第二个有序序列中不存在的元素。vector<int>转载 2017-06-21 10:43:41 · 429 阅读 · 0 评论 -
42STL之算术和生成算法
STL之算术和生成算法STL之算术和生成算法accumulatefill综合代码1.accumulate()accumulate: 对指定范围内的元素求和,然后结果再加上一个由val指定的初始值。 #include<numeric> vector<int> vecIntA; vecIntA.push_back(1); vecIntA.push转载 2017-06-21 10:21:08 · 406 阅读 · 0 评论 -
41STL之拷贝和替换算法
STL之拷贝和替换算法STL之拷贝和替换算法copyreplacereplace_ifswap综合代码1.copy()vector<int> vecIntA;vecIntA.push_back(1);vecIntA.push_back(3);vecIntA.push_back(5);vecIntA.push_back(7);vecIntA.push_back(9);vector转载 2017-06-21 10:19:38 · 436 阅读 · 0 评论 -
40STL之排序算法
STL之排序算法STL之排序算法mergesortrandom_shufflereverse综合代码1.merge()以下是排序和通用算法:提供元素排序策略 merge: 合并两个有序序列,存放到另一个序列。 例如: vecIntA,vecIntB,vecIntC是用vector<int>声明的容器,vecIntA已包含1,3,5,7,9元素,vecIntB已包含2,4,6,转载 2017-06-21 10:15:36 · 312 阅读 · 0 评论 -
39STL之查找算法
STL之查找算法STL之查找算法adjacent_findbinary_searchcountcount_iffindfind_if综合代码1.adjacent_find()在iterator对标识元素范围内,查找一对相邻重复元素,找到则返回指向这对元素的第一个元素的迭代器。否则返回past-the-end。vector<int> vecInt;vecInt.push_back(1转载 2017-06-21 10:03:54 · 358 阅读 · 0 评论 -
38STL之设计理念
STL之设计理念STL的容器通过类模板技术,实现数据类型和容器模型的分离。STL的迭代器技术实现了遍历容器的统一方法;也为STL的算法提供了统一性STL的函数对象实现了自定义数据类型的算法运算。#include <iostream>using namespace std;#include "string"#include <vector>#include <list>#include转载 2017-06-21 09:54:42 · 329 阅读 · 0 评论 -
37STL之函数适配器
STL之函数适配器STL之函数适配器理论知识常用函数适配器典型案例预定义函数对象和适配器案例代码1.理论知识2.常用函数适配器标准库提供一组函数适配器,用来特殊化或者扩展一元和二元函数对象。常用适配器是:1绑定器(binder):binder通过把二元函数对象的一个实参绑定到一个特殊的值上,将其转换成一元函数对象。C++标准库提供两种预定义的binder适配器:bind1st和bind2n转载 2017-06-21 09:48:09 · 454 阅读 · 0 评论 -
36STL之函数对象和谓词
STL之函数对象和谓词STL之函数对象和谓词函数对象谓词一元函数对象案例一元谓词案例二元函数对象案例二元谓词案例综合示例代码预定义函数对象1算术函数对象2关系函数对象3逻辑函数对象1.函数对象重载函数调用操作符的类,其对象常称为函数对象(function object),即它们是行为类似函数的对象。一个类对象,表现出一个函数的特征,就是通过“对象名+(参数列表)”的方式使用一转载 2017-06-21 09:47:42 · 459 阅读 · 0 评论 -
35STL之算法基础
STL之算法基础STL之算法基础概述分类常见算法1查找算法13个判断容器中是否包含某个值2排序和通用算法14个提供元素排序策略3删除和替换算法15个4排列组合算法2个提供计算给定集合按一定顺序的所有可能排列组合5算术算法4个6生成和异变算法6个7关系算法8个8集合算法4个9堆算法4个常用算法汇总1.概述算法部分主要由头文件<algorithm>,<numeric>和<f转载 2017-06-20 23:14:19 · 399 阅读 · 0 评论 -
22异常处理
异常处理异常处理处理错误的传统机制思想基本语法栈解旋接口声明异常类型和变量的生命周期异常和继承标准异常库1.处理错误的传统机制传统的C语言在函数执行过程中遇到语法错误或者逻辑错误的时候,通过函数返回值表明所遇到的错误类型。2.思想在C++里面,通过异常,跨越函数来通知整个程序错误发生并对错误进行相应的处理。C++的异常处理机制使得异常的引发和异常的处理不必在同一个函数中,这样底层转载 2017-06-20 09:09:41 · 465 阅读 · 0 评论 -
21类型转换
类型转换类型转换类型转换名称和语法类型转换一般性介绍1static_cast2reinterpret_cast3dynamic_cast4const_cast典型案例1 static_cast用法和reinterpret_cast用法2 dynamic_cast用法和reinterpret_cast用法3 const_cast用法总结1.类型转换名称和语法C风格的强制类型转转载 2017-06-19 23:28:46 · 306 阅读 · 0 评论 -
07文件操作
文件操作文件操作文件分类流概念文件处理方法文件操作API1 文件api的分类2 标准文件的读写3非标准文件的读写相关代码1 单个字符操作2按照行的方式进行操作3按照块的方式操作文件printf补充资料配置文件文件加解密1.文件分类 2.流概念流是一个动态的概念,可以将一个字节形象地比喻成一滴水,字节在设备、文件和程序之间的传输就是流,类似于水在管道中的传输,可以看出原创 2017-03-25 23:19:14 · 531 阅读 · 0 评论 -
06结构体
结构体结构体基本操作1 定义变量2 初始化变量3 访问成员结构体变量作函数参数 VS 结构体指针作函数参数结构体指针的输入输出模型结构体的深浅拷贝结构体中的偏移量1. 基本操作1.1 定义变量方法一. 先定义类型,再定义变量struct Student{ char *name; int age; int score;};void main(){原创 2017-03-25 21:35:03 · 433 阅读 · 0 评论 -
09动态库的设计和实现
动态库的设计和实现动态库的设计和实现基础概念Win32环境下动态链接库DLL编程原理1导出和导入函数的匹配2与DLL模块建立链接3使用符号名链接与标识号链接4编写DllMain函数5模块句柄6应用程序怎样找到DLL文件7调试DLL程序8DLL分配的内存如何在EXE里面释放VS2013 配置动态库工程1 新建DLL项目2测试项目的配置第一套API函数的动态库程序1 动态库原创 2017-04-07 23:53:59 · 2123 阅读 · 0 评论 -
02指针知识体系搭建
指针知识体系搭建指针知识体系搭建指针是一种数据类型1 指针也是一种变量2 p操作内存3 指针变量和它指向的内存块是两个不同的概念4 指针是一种数据类型是指它指向的内存空间的数据类型5 野指针的实例间接赋值p是指针存在的最大意义1 零级指针到一级指针的推演2 一级指针到二级指针的推演3 间接赋值指针作函数参数存在的意义4 间接赋值成立的条件5 间接赋值的应用场景6 间接赋值推原创 2017-03-09 22:25:59 · 1137 阅读 · 0 评论 -
01内存四区模型的引入
内存四区模型内存四区模型行业分析数据类型本质分析变量本质分析程序的内存四区模型函数调用模型1. 行业分析企业需要的C/C++工程师信息系统的技术模型在分层 找出对我们初学者最近的那一层(哪些能力是你入行前,必须要掌握的)C项目开发的套路(一套接口)//socket_client pool api 设计与实现int sckClient_poolinit(void **hand原创 2017-02-14 10:48:31 · 684 阅读 · 0 评论 -
03字符串操作和一级指针内存模型
字符串操作和一级指针内存模型字符串操作和一级指针内存模型字符串的基本操作1 关于字符串不得不说的话2 字符数组初始化3 用字符串初始化字符数组4 通过数组下标和指针访问字符串内容一级指针内存模型字符串copy函数推演过程strstr模型两头堵模型字符串反转模型两个小练习一级指针易错模型分析关于const1. 字符串的基本操作1.1 关于字符串不得不说的话C语言的字符串是原创 2017-03-12 23:37:21 · 1063 阅读 · 0 评论 -
05数组相关
数组相关数组相关数组概念数组类型数组指针类型多维数组1本质推演2参数退化3作函数参数4证明多维数组内存中是连续存储的指针数组1菜单2命令行参数3指针数组的自我结束功能1.数组概念 数组:相同类型变量的有序集合 从内存角度,是一片连续的内存空间数组初始化:在编译时明确指定全部元素为0 int a[10] = {0};在程序运行时,重置内存块为0 memset(原创 2017-03-21 23:52:47 · 481 阅读 · 0 评论 -
求二进制数中1的个数
解法一:对于一个正整数如果是偶数,该数的二进制数的最后一位是 0 ,反之若是奇数,则该数的二进制数的最后一位是 1 。因此,可以考虑利用位移、判断奇偶来实现。 Java代码 public int bitCount(int x){ int count = 0; while(x!=0){ if(x%2!=0){ //判断奇转载 2017-03-11 14:56:57 · 445 阅读 · 0 评论 -
04二级指针三种内存模型
二级指针二级指针二级指针做输出模型二级指针的三种输入内存模型1 第一种内存模型2 第二种内存模型3 第三种内存模型4 三种内存模型比较5 两个辅助指针变量挖取单词1. 二级指针做输出模型#define _CRT_SECURE_NO_WARNINGS #include <stdlib.h>#include <string.h>#include <stdio.h>//指针做输出原创 2017-03-20 23:28:00 · 555 阅读 · 0 评论 -
08链表
链表链表热身基本概念静态链表的局限性单向带头结点的动态链表传统链表和Linux内核链表的区别1.热身结构体里面套一个自己类型的结构体元素是不行的,但是可以套指向自己类型的结构体指针结构体不能嵌套定义(确定不了数据类型的内存大小,分配不了内存)函数的嵌套调用和数据类型的嵌套定义是两个不同的概念#define _CRT_SECURE_NO_WARNINGS#include <std原创 2017-03-26 22:23:32 · 317 阅读 · 0 评论 -
11类和对象
类和对象类和对象基本概念类的封装示例代码1.基本概念类、对象、成员变量、成员函数面向对象三大概念 封装、继承、多态编程实践 类的定义和对象的定义,对象的使用求圆形的面积定义Teacher类,打印Teacher的信息(把类的声明和类的实现分开)2.类的封装1.封装(Encapsulation)封装,是面向对象程序设计最基本的特性。把数据(属性)和函数(操作)合成一个整体,这在原创 2017-05-25 09:47:37 · 418 阅读 · 0 评论 -
19纯虚函数和抽象类
纯虚函数和抽象类纯虚函数和抽象类基本概念案例抽象类在多继承中的应用面向抽象类编程socket库c模型设计和实现C语言回调函数和函数指针1.基本概念2.案例#include <iostream>using namespace std;////面向抽象类编程(面向一套预先定义好的接口编程)//解耦合 ....模块的划分class Figure //抽象类{public:转载 2017-06-19 19:49:47 · 368 阅读 · 0 评论 -
20泛型编程(模板)
泛型编程(模板)泛型编程模板模板综述函数模板1基础语法2函数模板遇上函数重载3函数模板实现机制类模板1普通类模板的语法2继承中的类模板语法2类模板知识体系梳理3类模板中的static关键字4类模板小结模板在工程中的应用1.模板综述 背景有时候许多函数或子程序的逻辑结构是一样的,只是要处理的数据类型不一样有时候多个类具有相同逻辑的成员函数和成员变量,只是成员变量的数据类转载 2017-06-19 22:50:53 · 425 阅读 · 0 评论 -
18多态
多态多态问题引出解决方案工程意义成立条件理论基础本质剖析1 多态实现原理2 证明VPTR的存在3 构造函数中调用虚函数面试题集锦1 关于函数重载重写重定义2 为什么定义虚析构函数3 父类和子类指针的步长4 关于多态的理解5 C编译器是如何实现多态6 类的每个成员函数是否都可以声明为虚函数为什么7 构造函数中调用虚函数能实现多态吗为什么8 虚函数表指针VPTR被编译转载 2017-06-01 14:10:52 · 371 阅读 · 0 评论 -
17多继承
多继承多继承基础知识派生类的访问控制继承中的构造和析构多继承1.基础知识1.1 类之间的关系has-A,uses-A 和 is-Ahas-A 包含关系,用以描述一个类由多个“部件类”构成。实现has-A关系用类成员表示,即一个类中的数据成员是另一种已经定义的类。 常和构造函数初始化列表一起使用uses-A 一个类部分地使用另一个类。通过类之间成员函数的相互联系,定义友元函数转载 2017-06-01 12:48:58 · 357 阅读 · 0 评论