数据结构(C++)—— 向量(Vector)
来源:互联网 发布:中日高铁争夺战 知乎 编辑:程序博客网 时间:2024/05/16 17:46
1. 动态内存管理
1.1 扩容
template <typename T> void Vector<T>::expand(){ if (_size < _capacity) return; if (_capacity < DEFAULT_CAPACITY) _capacity = DEFAULT_CAPACITY; T *oldElem = _elem; _elem = new T[_capacity*=2]; for (int i = 0; i < _size; _elem[i] = oldElem[i++]); delete [] oldElem;}
1.2 缩容
template <typename T>void Vector<T>::shrink(){ if (_capacity < DEFAULT_CAPACITY << 1) return; if (_size << 2 > _capacity) return; T *oldElem = _elem; _elem = new T[_capacity >>= 1]; for (int i = 0; i < _size; ++i){ _elem[i] = oldElem[i]; } delete [] oldElem;}
1.3 删除区间
template <typename T>int Vector<T>::remove(Rank lo, Rank hi){ if (lo == hi) return 0; while (hi < _size){ _elem[lo++] = _elem[hi++]; } _size = lo; shrink(); return hi - lo;}
1.4 查找与去重
0 0
- 数据结构(C++)—— 向量(Vector)
- 数据结构—向量(vector)-数组
- 数据结构-Vector实现(C++)
- Vector(向量容器)
- 向量(vector)
- 向量(vector)
- Java——数组、向量(Vector)详解
- C++STL泛型编程——vector向量容器
- 向量与向量空间(vector space)
- vector容器的内存分配——vector向量容器(补充)——STL Introduction
- STL 向量容器(vector)
- STL 向量容器(vector)
- STL 向量容器(vector)
- STL 向量容器(vector)
- C++ Vector(向量容器)
- C++ Vector(向量容器)
- C++ Vector(向量容器)
- C++ Vector(向量容器)
- Spring-bean的属性-2
- 网络编程—线程
- 约瑟夫环_循环链表实现
- 当struts遇上json,没爱了
- windows下后门技术(netcat篇)
- 数据结构(C++)—— 向量(Vector)
- Python 中一些需要查询的东西
- 程序员的基本素质
- akka入门
- IO流解析
- Linux命令 -- 批量修改文件名
- Java 的数据类型
- bzoj1503 郁闷的出纳员
- LeetCode-54&59.Spiral Matrix