川川的博客

Thinking will not overcome fear but action will.

C++vector

Vector 三种遍历 迭代器 普通正向迭代 iterator 只读 const_iterator 反向迭代 reverse_iterator rit.rbegin(), rit.rend(); resize(n,char ch) 修改size大小为n,且空数据填充为ch reserve() 修改capacity空间大小,就不用扩容了 vector<int&...

C++stl String

STL标准模板库 (standard template library) STL六大容器 1.string // size/clear/resize void Teststring1() { // 注意:string类对象支持直接用cin和cout进行输入和输出 string s("hello, bit!!!"); cout << s....

C++模板类

函数模板 写跟类型无关的代码(泛型编程) //template<typename T> template<class T> void Swap( T& left, T& right) { T temp = left; left = right; right = temp; } 1.模板实例化 ...

C++内存管理

内存管理 操作系统内存管理: 1.分段。不同用途的数据放到不同的区域,就像划分不同的地域 2.分页。 虚拟地址-》物理地址映射 一个你写的程序是如何在Linux上编译后运行起来的? 1.C语言中动态内存管理方式 malloc /calloc/realloc和free calloc初始化空间并初始化为零 2.C++动态内存管理 new和delete的意义何在...

C++面向对象(中)

面向对象(中) 1.再谈构造函数 初始化列表 Date(int year = 0, int month = 1, int day = 1) :_year(year) ,_month(month) ,_day(day) { } 有些成员变量必须在初始化列表初始化 1.const成员变量 2.引用成员变量 3.没有默认构造函数的自定义成员变量 成员变量声明的顺序就...

C++面向对象(上)

面向对象 1.封装 ​ 把想给你看的数据给你看,不想给你看的数据封装起来。-》访问限定符 class Stack { //1.成员变量 //2.成员函数 private: ​ int* _a; ​ int _size; ​ int _capacity; public: ​ void Push(int x); ​ void Pop(); ​ ...

C++基础语法

1.命名空间 using namespace std;//C++中的库都在std中 using std::cout;//部分完全展开 (项目常用) std::cin 2.iostream cin»a; std::cout«a«‘ ’«std::endl; 3.缺省参数 全缺省(传参从左往右依次传参) void Func1(int a = 1, int b = 2, int ...

数据结构>排序

插入排序,选择排序,冒泡排序

排序: 1.插入排序和希尔排序 //插入排序 时间复杂度O(N*N) 空间复杂度O(1) void InsertSort(int* a, int n) { for (int i = 0; i < n-1; i++) { //单次插入 int end = i; int tmp = a[end + 1]; while (end >= 0) { i...

数据结构>二叉树>堆

二叉树,堆

介绍 树 –》二叉树 –》–》完全二叉树 –》–》–》满二叉树 完全二叉树高度:h = logN + 1 满二叉树高度:h = log(N+1) OJ 1.单值二叉树 如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树。 只有给定的树是单值二叉树时,才返回 true;否则返回 false。 示例 1: 输入:[1,1,1,1,1,null,1] ...

数据结构>栈和队列

栈, 队列

介绍 栈:一种特殊的线性表,只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。 队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out) 入队列:进行插入操作的一端称为队尾 出队列:进行删除操作的一 端称为队头。 声明 //栈 //静态定长栈 #defi...