c++vector简单实现
C++ 实现 简单 vector
2023-09-14 09:08:57 时间
const int DEFAULT_CAP = 3; template <typename T> class vector { // int capacity; T* _data; int _size; public: //const vector ():capacity(DEFAULT_CAP),_size(0),_data(new T[capacity]){}; vector(vector& v):capacity(v.cap()),_size(v.size()),_data(new T[capacity]) { memcpy(_data, v._data, _size*sizeof(T)); } vector(vector&& v):capacity(v.cap()),_size(v.size()) { _size = v.getdata(); v._data = nullptr; } //deconst virtual ~vector(){ delete [] _data;} //operator vector& operator=(const vector &v) { /* if(this != &v){ delete [] _data; _size = v.size(); capacity = v.cap(); _data = new T[capacity]; memcpy(_data, v._data, _size*sizeof(T)); }*/ sw(v); return *this; } T& operator[](int i) const{ return _data[i]; } //retrun int size() const {return _size;} int cap() const {return capacity;} const int getdata() const noexcept {_data;} //function void expand() { if(_size == capacity){ capacity = capacity<<1; T *old = _data; _data = new T[capacity]; memcpy(_data, old, _size*sizeof(T)); delete [] old; } } void push_back(T const& temp) { expand(); _data[_size++] = temp; } void each(){ for (int i = 0; i < _size; ++i) { cout<<_data[i]<<endl; } } void sw(vector& v) { swap(_size, v._size); swap(capacity, v.capcity); swap(_data, v._data); } };
相关文章
- C++ 炼气期之数据是主角
- C++实现二叉树层序遍历
- c++实现stack_c语言输出栈中所有元素
- C++内存池的简单原理及实现(纯代码解析)
- C++ vector 初始化大小[通俗易懂]
- Cu002FC++ 中的一元运算符
- 利用多线程和 C++ 实现一个简单的 HTTP 服务器
- C++ 不知树系列之认识二叉树(数组、链表存储的实现)
- 纯C++实现字符版推箱子
- C/C++ 实现外部D3D屏幕绘制
- C/C++ 异或加密实现代码
- 华为OD机试真题 C++ 实现【积木最远距离】2022.11 Q4
- 【C++】C++基础语法
- 树和二叉树的存储结构的实现(C/C++实现)详解编程语言
- C++ &&、||、!逻辑运算符用法详解
- 浅谈C++ auto_ptr智能指针
- c++连接两个字符串实现代码实现类似strcat功能
- C++学习之旅Windows程序内部运行原理
- C++实现:螺旋矩阵的实例代码
- c++大数阶乘的实现方法
- C++中简单读写文本文件的实现方法
- C++封装线程类的实现方法
- C++实现判断字符串是否回文实例解析
- C++实现哈夫曼树简单创建与遍历的方法
- VC++实现选择排序算法简单示例