- 博客(28)
- 资源 (2)
- 收藏
- 关注
原创 QT MainWindow
MainWindow常见组成:菜单栏//菜单栏只能最多有一个 //菜单栏创建 QMenuBar *bar = menuBar(); //将菜单栏放到窗口中 setMenuBar(bar); //创建菜单 QMenu * fileMenu = bar->addMenu("文件"); QMenu * editMenu = bar->addMenu("编辑"); //创建菜单项 QAction *newAction = fi
2021-07-23 15:24:22
3329
原创 STL-函数对象 + 谓词 + 常用算法
本文为B站黑马程序员 C++视频学习笔记,若侵权,则删,B站搜索黑马程序员可查看原视频。函数对象概念:1、重载函数调用操作符的类,其对象常称为函数对象2、函数对象使用重载的()时,行为类似函数调用,也叫仿函数本质:函数对象(仿函数)是一个类,不是一个函数函数对象使用特点:1、函数对象在使用时,可以像普通函数那样调用,可以有参数,可以有返回值2、函数对象超出普通函数的概念,函数对象可以有自己的状态3、函数对象可以作为参数传递示例:#include <stdio.h>#i
2021-07-08 21:54:40
151
原创 map/multimap容器
本文为B站黑马程序员 C++视频学习笔记,若侵权,则删,B站搜索黑马程序员可查看原视频。map基本概念简介:1、map中所有元素都是pair2、pair中第一个元素为key(键值),起到索引作用,第二个元素为value(实值)3、所有元素都会根据元素的键值自动排序本质:map/multimap属于关联式容器,底层结构是用二叉树实现优点:可以根据key值快速找到value值map和multimap区别:1、map不允许容器中有重复key值元素2、multimap允许容器中有重复key值
2021-07-07 00:08:44
177
原创 set / multiset 容器
本文为B站黑马程序员 C++视频学习笔记,若侵权,则删,B站搜索黑马程序员可查看原视频。set基本概念set容器中,所有元素都会在插入时自动被排序本质:set
2021-07-06 16:32:25
92
原创 list容器
本文为B站黑马程序员 C++视频学习笔记,若侵权,则删,B站搜索黑马程序员可查看原视频。list基本概念功能: 将数据进行链式存储链表 是一种物理存储单元上非连续的存储结构,数据元素的逻辑顺序是通过链表中的指针链接实现的链表的组成: 链表由一系列结点组成结点的组成: 一个存储数据元素的数据域,另一个是存储下一个结点地址的指针域STL中的链表是一个双向循环链表由于链表的存储方式并不是连续的内存空间,因此链表list中的迭代器只支持前移和后移,属于双向迭代器list优点:1、采用动态存储分配
2021-07-01 19:56:19
100
原创 queue容器
本文为B站黑马程序员 C++视频学习笔记,若侵权,则删,B站搜索黑马程序员可查看原视频。queue容器基本概念Queue是一种先进先出(First In First Out,FIFO)的数据结构,它有两个出口队列容器允许从一端新增元素,另一端移除元素队列中只有队头和队尾才可以被外界使用,因此队列不允许有遍历行为队列中进数据称为 ----- 入队 push队列中出数据称为 ----- 出队 popqueue常用接口构造函数 :queue<T> que; //q
2021-07-01 16:53:09
134
原创 stack容器
本文为B站黑马程序员 C++视频学习笔记,若侵权,则删,B站搜索黑马程序员可查看原视频。stack基本概念stack是一种先进后出(First In Last Out,FILO)的数据结构,它只有一个出口栈只有顶端的元素才可以被外界使用,因此栈不允许有遍历行为栈中进入数据称为-----入栈 push栈中弹出数据称为-----出栈 popstack常用接口构造函数:stack<T> stk; //stack采用模板类实现,stack对象的默认构造形式stack(const
2021-07-01 16:32:09
86
原创 deque容器
本文为B站黑马程序员 C++视频学习笔记,若侵权,则删,B站搜索黑马程序员可查看原视频。deque容器基本概念功能: 双端数组,可以对头端进行插入删除操作deque与vector区别:1、vector对于头部的插入删除效率低,数据量越大,效率越低2、deque相对而言,对头部的插入删除速度会比vector快3、vector访问元素时的速度会比deque快,这和两者内部实现有关deque内部工作原理:deque内部有个中控器,维护每段缓冲区中的内容,缓冲区中存放真实数据中控器维护的是每个缓
2021-07-01 10:48:25
170
原创 STL初识 + vector容器
STL诞生1、长久以来,软件界一致希望建立一种可重复利用的东西2、C++的面向对象和泛型编程思想,目的就是复用性的提升3、大多情况下,数据结构和算法都未能有一套标准,导致被迫从事大量重复性工作4、为了建立数据结构和算法的一套标准,诞生了STLSTL基本概念1、STL(standard Template Library,标准模版库)2、STL从广义上分为:容器(container)、算法(algorithm)、迭代器(iterator)3、容器和算法之间通过迭代器进行无缝连接4、STL几乎所
2021-06-30 13:03:18
120
原创 C++ string功能
本文为B站黑马程序员 C++视频学习笔记,若侵权,则删,B站搜索黑马程序员可查看原视频。string容器本质: string是C++风格的字符串,而string本质上是一个类string和char * 区别:1、char是一个指针2、string是一个类,类内部封装了char,管理这个字符串,是一个char类型的容器特点:string类内部封装了很多成员方法,例如:find(查找)、copy(拷贝)、delete(删除)、replace(替换)、insert(插入)string管理char所
2021-06-29 08:44:24
177
原创 C++模版
模板模板概念:模板就是建立通用的模具,大大提高复用性例如:生活中 一寸照片模板 ppt模板模板特点:1、模板不可以直接使用,它只是一个框架2、模板的通用并不是万能的函数模板1、C++另一种编程思想称为泛型编程,主要利用的技术就是模板2、C++提供两种模板机制:函数模板和类模板函数模板语法函数模板作用:建立一个通用函数,其函数返回值类型和形参类型可以不具体制定,用一个虚拟的类型来代表语法: template < typename T> 函数声明或定义解释: temp
2021-06-27 16:11:19
92
原创 C++文件操作
文件操作程序运行时产生的数据都属于临时数据,程序一旦运行结束都会被释放通过文件可以将数据持久化C++中对文件操作需要包含头文件 fstream文件类型分为两种:1、文本文件 - 文件以文本的ASCII码形式存储在计算机中2、二进制文件 - 文件以文本的二进制形式存储在计算机中,用户一般不能直接读懂他们、操作文件的三大类:1、ofstream : 写操作2、ifstream : 读操作3、fstream : 读写操作文本文件写文件:1、包含头文件 #include2、创
2021-06-22 17:36:04
83
原创 继承和多态
继承继承是面向对象三大特性之一定义一些类时,下级别的成员除了拥有上一级的共性,还有自己的特性这个时候,我们就可以考虑利用继承的技术,减少重复代码继承的基本语法//普通实现页面#include<iostream>using namespace std;//Java页面class Java{public: void header() { cout<<"首页、公开课、登陆、注册....(公共头部)"<<endl; } void footer()
2021-06-21 20:54:22
110
原创 运算符重载
B站黑马程序员学习笔记,侵权则删,B站搜索:黑马程序员可查看原视频## 运算符重载运算符重载概念:对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型加号运算符重载作用:实现两个自定义数据类型相加的运算对于内置数据类型,编译器知道如何进行运算对于自定义数据类型,需要对运算符重载//加号运算符重载class Person{public: int m_A; int m_B;public: Person PersonAddPerson(Person &p) {
2021-06-18 16:55:14
98
原创 类和对象(基础)
C++面向对象的三大特性为:封装、继承、多态C++认为万事万物都皆为对象,对象上有其属性和行为封装意义:将属性和行为作为一个整体,表现生活中的事物将属性和行为加以权限控制//设计一个圆类,求圆的周长const double PI = 3.1415926;class Cricle{ //访问权限public: //属性 int m_r; //行为 double calculateZC() { return 2 * PI * m_r; }}int main(){ //
2020-10-18 00:05:49
92
原创 函数相关知识
函数相关知识头文件与源文件.h(头文件)中包含其他的头文件及函数的声明.cpp(源文件)包含头文件和函数的定义值传递值传递:形参发生改变,实参的值不会改变,
2020-10-15 21:47:55
70
原创 C++内存四区
内存分区模型C++程序在执行时,将内存大方向划分为4个区域1.代码区:存放函数体的二进制代码,由操作系统进行管理2.全局区:存放全局变量和静态变量以及常量3.栈区:由编译器自动分配释放,存放函数的参数值,局部变量等4.堆区:由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收内存四区的意义不用区域存放的数据,赋予不同的生命周期,给我们更大的灵活编程。程序运行前(运行前之只有代码区和全局区)程序编译后,生成了exe可执行程序,未执行该程序前分为两个区域代码区:存放CPU执行的机器
2020-10-14 20:13:08
110
原创 C++结构体
结构体创建定义:struct Student //声明,struct不可以省略{ string name; int age; int score;}int main(){ //创建结构体变量,第一种方式 Student s1; s1.name = "张三"; s1.age = 10; s1.score = 20; //创建结构体变量,第二种方式 Student s2 = {"李四",10,23}; //第三种方式可以在声明时进行创建,不经常使用} 结构体数组i
2020-09-17 14:55:32
68
原创 指针相关知识
指针相关知识指针定义与用法指针定义语法:数据类型 *指针变量名; int a = 10; int * p;//指针定义 p = &a;//让指针指向a的地址 cout<<"a的地址为:"<< &a <<endl; cout<<"指针p为:"<<p<<endl; //输出与上面相同,指针就是地址。 //使用指针:可以通过解引用的方式来找到指针所指向的内存 //解引用:指针前加分号,找到指针所指向内存中
2020-09-16 15:46:28
73
原创 C++二维数组
二维数组的相关知识##二维数组数组名的使用方法 int arr[2][3]= { {1,2,3}, {4,5,6} }; cout<<"二维数组占用的内存空间为:"<<sizeof(arr)<<endl; cout<<"二维数组第一行占用内存为:"<<sizeof(arr[0])<<endl; cout<<"二维数组第一个元素占用内存为:"<<sizeof(ar
2020-09-11 15:01:52
67
原创 运用GDAL对图像进行二值化
#include"pch.h"#include<stdio.h>#include<gdal_priv.h>#include<iostream>usingnamespacestd; constintthreshold=5000;int main(){constchar*pInFile="C:\\Users\\li_...
2019-11-13 19:01:23
1119
转载 CString char * string 之间的转换
这三种类型各有各的优点,比如CString比较灵活,是基于MFC常用的类型,安全性也最高,但可移植性最差。string是使用STL时必不可少的类型,所以是做工程时必须熟练掌握的;char*是从学习C语言开始就已经和我们形影不离的了,有许多API都是以char*作为参数输入的。所以熟练掌握三者之间的转换十分必要。以下我用简单的图示指出三者之间的关系,并以标号对应转换的方法。1 strin...
2018-07-26 11:34:13
257
转载 (转载)C++ ofstream和ifstream详细用法
原文出自【比特网】,转载请保留原文链接:http://soft.chinabyte.com/database/460/11433960.sh[导读] ofstream是从内存到硬盘,ifstream是从硬盘到内存,其实所谓的流缓冲就是内存空间 在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O. stream这...
2018-07-25 09:25:34
219
原创 C++ MFC CString转换成Double 可解决VS2013中不存在从CString到const char 的适当转换函数
1、首先要确定你的工程字符集用的是多字节而不是unicode才能用下面的方法, 因为vs2008/2010默认使用的是unicode编码. 修改方式为: 在解决方案窗口右键工程名-->属性->General项(我用的是英文的)-->字符集, 选择多字节那个就行了2、例程:CString str;转成int: ;int a = atoi(str.GetBuffer())...
2018-07-20 13:22:50
2972
原创 使用迭代器遍历输出vector数组
c++中的vector元素需要用迭代器iterator来循环获取。例子如下:#include<stdio.h>#include<vector>#include <iostream>using namespace std;void main(){int i = 0;std::vector<int> vor;for(i = 0;i<10;i++){...
2018-06-13 14:24:05
8924
原创 赤纬转换为度 (字符切割和字符类型转换 string→double)
double dectod(string a) //赤纬转化为度{string a=" 32d30 -29d55";string b=a.substr(0.1);if(b=="-"){string c=a.substr(1,2);double c1=atof(c.c_str());string d=a.substr(5,2);double d1=atof(d.
2017-08-11 14:33:03
683
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人