C++
文章平均质量分 68
名字啊名字
比较杂乱,后期慢慢整理,纯用来记录学习过程。
展开
-
VS常用快捷键
平时不怎么习惯用VS快捷键,决定学习一些常用的,注释:Ctrl+K Ctrl+C 添加行注释Ctrl+K Ctrl+U 移除行注释整行操作:Alt+ ↑ / ↓ 移动行向上向下Shift+Alt + ↓ / ↑ 拷贝行向上向下Ctrl+Shift+K 删除整行Ctrl+Enter 下面插入一行Ctrl+Shift+Enter 上面插入一行浏览操作:Ctrl+Home 文件起始Ctrl+End 文件末尾Ctrl+↑ / ↓ 滚动行Alt+PgUp / PgDn 滚动页...原创 2021-08-26 10:41:10 · 288 阅读 · 0 评论 -
GDB调试
安装ubuntu在root用户下,apt-get updateapt-get install gdb基本调试加入调试信息,需要在结尾加ggcc –o filename filename.c -g**o选项的作用是:**对命令输出结果进行导入操作,这里是把gcc –o a a.c -g的操作结果输出到文件a(文件名可以自定义)中进行保存。**g选项的作用是:**在可执行文件中加入源码信息,比如:可执行文件中第几条机器指令对应源代码的第几行,但并不是把整个源文件都嵌入到可执行文件中,而是在原创 2021-08-24 10:11:05 · 91 阅读 · 0 评论 -
GDB调试
实习期间使用的是C,这里以C举例,最简单的例子首先编译一个测试程序,gcc -g test.c -o test启动gdb,gdb testlist(简写 l): 查看源程序代码,默认显示10行,按回车键继续看余下的。run(简写 r) :运行程序直到遇到 结束或者遇到断点等待下一个命令;...原创 2021-08-03 00:32:30 · 134 阅读 · 0 评论 -
Lambda表达式总结
介绍C++11中用于定义并创建匿名的函数对象,其组成如下:格式为:[函数对象参数](操作符重载函数参数)mutable或exception ->返回值{函数体}①函数对象参数;[],标识一个Lambda的开始,这部分必须存在,不能省略。函数对象参数是传递给编译器自动生成的函数对象类的构造函数的。函数对象参数只能使用那些到定义Lambda为止时Lambda所在作用范围内可见的局部变量(包括Lambda所在类的this)。函数对象参数有以下形式:[] 没有使用任何函数对象参数。[=]原创 2021-02-23 22:04:54 · 88 阅读 · 0 评论 -
STL中常用函数
用来记录在刷算法题时非常常见的函数使用,一定要熟练使用。原创 2021-01-28 11:57:34 · 152 阅读 · 0 评论 -
容器总结
概念容器是什么容器定义:在数据存储上,有一种对象类型,它可以持有其它对象或指向其它对象的指针,这种对象类型就叫做容器。定义简单理解:容器这种对象类型,从单词表面意思理解就是包含,包含了什么呢,是我们需要的存储结构的对象,这样的对象集成了特定存储结构和对存储的操作方式,可以重复利用这些代码方便编程。在C++中的容器:因为C++ 中处理容器是采用基于模板的方式,在C++ 中,标准模板库(STL )中包含了容器。STL中的容器提供了多种数据结构,例如栈,队列,数组等等。这些内容大家一定很熟悉。通用原创 2021-01-24 13:39:34 · 188 阅读 · 0 评论 -
常用排序算法
算法简介:sort //对容器内元素进行排序random_shuffle //洗牌 指定范围内的元素随机调整次序merge // 容器元素合并,并存储到另一容器中reverse // 反转指定范围的元素sort功能描述:对容器内元素进行排序函数原型:sort(iterator beg, iterator end, _Pred);// 按值查找元素,找到返回指定位置迭代器,找不到返回结束迭代器位置// beg转载 2021-01-24 10:13:49 · 71 阅读 · 0 评论 -
queue 容器
queue 基本概念概念: Queue是一种先进先出的数据结构,它有两个出口队列容器允许从一端新增元素,从另一端移除元素队列中只有队头和队尾才可以被外界使用,因此队列不允许有遍历行为队列中进数据称为 — 入队 push队列中出数据称为 — 出队 popqueue 常用接口构造函数:queue<T> que; //queue采用模板类实现,queue对象的默认构造形式queue(const que原创 2021-01-24 10:00:36 · 81 阅读 · 0 评论 -
stack容器
stack 基本概念概念: stack是一种先进后出的数据结构,它只有一个出口栈中只有顶端的元素才可以被外界使用,因此栈不允许有遍历行为栈中进入数据称为 — 入栈 push栈中弹出数据称为 — 出栈 popstack 常用接口功能描述:栈容器常用的对外接口构造函数:stack<T> stk; //stack采用模板类实现, stack对象的默认构造形式stack(const stack &s原创 2021-01-24 09:53:23 · 198 阅读 · 0 评论 -
set相关容器
set基本概念简介:所有元素都会在插入时自动被排序本质:set/multiset属于关联式容器,底层结构是用二叉树实现。set和multiset区别:set不允许容器中有重复的元素multiset允许容器中有重复的元素set构造和赋值功能描述:创建set容器以及赋值构造:set<T> st; //默认构造函数:set(const set &st); //拷贝构造函数赋值:set&原创 2021-01-24 09:47:56 · 68 阅读 · 0 评论 -
list 容器
基本概念链表(list)是一种物理存储单元上非连续的存储结构,数据元素的逻辑顺序是通过链表中的指针链接实现的链表的组成:链表由一系列结点组成结点的组成:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域STL中的链表是一个双向循环链表:list的优点:采用动态存储分配,不会造成内存浪费和溢出链表执行插入和删除操作十分方便,修改指针即可,不需要移动大量元素list的缺点:链表灵活,但是空间(指针域) 和 时间(遍历)额外耗费较大List有一个重要的性质,插入操作和原创 2021-01-24 09:34:40 · 94 阅读 · 0 评论 -
sort容器
list基本概念功能: 将数据进行链式存储链表(list)是一种物理存储单元上非连续的存储结构,数据元素的逻辑顺序是通过链表中的指针链接实现的链表的组成:链表由一系列结点组成结点的组成:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域STL中的链表是一个双向循环链表由于链表的存储方式并不是连续的内存空间,因此链表list中的迭代器只支持前移和后移,属于双向迭代器优缺点分析:list的优点:采用动态存储分配,不会造成内存浪费和溢出链表执行插入和删除操作十分方便,修改指原创 2021-01-23 12:46:07 · 134 阅读 · 0 评论 -
deque容器
基本概念功能:双端数组,可以对头端进行插入删除操作deque与vector区别:vector对于头部的插入删除效率低,数据量越大,效率越低deque相对而言,对头部的插入删除速度回比vector快vector访问元素时的速度会比deque快,这和两者内部实现有关deque内部工作原理:deque内部有个中控器,维护每段缓冲区中的内容,缓冲区中存放真实数据中控器维护的是每个缓冲区的地址,使得使用deque时像一片连续的内存空间,支持随机访问。deque构造函数函数原型:和vec原创 2021-01-23 12:25:35 · 117 阅读 · 0 评论 -
string 容器
基本概念本质:string是C++风格的字符串,而string本质上是一个类string和char * 区别:char * 是一个指针string是一个类,类内部封装了char*,管理这个字符串,是一个char*型的容器。特点:string 类内部封装了很多成员方法,例如:查找find,拷贝copy,删除delete 替换replace,插入insertstring管理char*所分配的内存,不用担心复制越界和取值越界等,由类内部进行负责string构造函数构造函数原型:转载 2021-01-23 11:23:08 · 88 阅读 · 0 评论 -
map相关容器
本文主要是介绍map/multimap/unerdered_map/unerdered_multimap的使用,优缺点和使用场景对比。后续随着学习的深入慢慢补充。原创 2021-01-22 11:44:33 · 120 阅读 · 0 评论 -
STL介绍
STL初识来源希望代码可重复利用,基于面向对象和泛型编程思想,诞生了STL这样一个为了重复利用数据结构和算法的东西(标准模板库)。基本概念STL几乎所有代码都采用了模板类或者模板函数。1、STL六大组件STL大体分为六大组件,分别是:容器、算法、迭代器、仿函数、适配器(配接器)、空间配置器。容器:各种数据结构,如vector、list、deque、set、map等,用来存放数据。算法:各种常用的算法,如sort、find、copy、for_each等迭代器:扮演了容器与算法之间的胶合剂。原创 2021-01-21 11:19:11 · 284 阅读 · 0 评论 -
vector容器
1. vector:1.1 vector 说明类似string类,也是一种动态数组,可在运行阶段设置长度,末尾或中间插入数据进行vector操作前应添加头文件#include <vector>vector在名称空间std中,可以使用using编译指令、using声明或std::vector使用不同语法来指明存储的类型和不同元素数1.2 vector初始化:一般而言vector<typename> vt(n_elem);常见的初始化方法//定义具有10个整型元素原创 2020-12-03 14:53:57 · 303 阅读 · 1 评论