动态数组
类声明
template <class T = int>
class D_Array{
private:
T* _data;
int _capacity;
int _size;
bool _flag;
protected:
inline void Expansion();
public:
D_Array(int capacity = DEFAULT_CAPACITY, T const& value = 0);
~D_Array();
inline int size() const;
inline int capacity() const;
inline void insert(int index, T const& value);
inline void push_back(T& value);
inline void remove(int index);
inline int find(T const& value) const;
inline void m_print() const;
inline T& operator [] (int index);
};
/**
* @brief 动态数组
* private:
* T _data; 数组内元素
* int _capacity; 数组容量
* int _size; 有效元素个数
* bool _flag; 是否允许扩容
* protected:
* void Expansion(); 扩容
* public:
* D_Array(); 构造
* ~D_Array(); 析构
* void insert(int index, T& value); 插入
* void push_back(T& value); 尾增
* void remove(int index); 移除
* int find(T& value) const; 查找 value 返回下标 或 -1
* void m_print() const; 打印
* T& operator [] (int index); 重载[]
*/
main.cpp
#include <iostream>
#include "DynamicArrays.h"
using namespace CC;
int main()
{
//DynamicArrays
D_Array<> nums;// 默认类型为 int
for(auto i:{1,2,3,4,5,6})
nums.push_back(i);
nums.m_print();
nums[0] = 8;
nums.m_print();
nums.insert(-1, 1); // -1的后面插入 --> data[0] 为 1
nums.m_print();
std::cout << nums.find(8) << " " << nums.find(9) << "\n";
std::cout << nums.capacity() << "\n";
for(auto i:{7,8,9,10,11,12,13,14,15,16,17})
nums.push_back(i);
std::cout << nums.capacity() << "\n";//扩容
//__EOF__
}
1 2 3 4 5 6
8 2 3 4 5 6
1 8 2 3 4 5 6
1 -1
16
32

DynamicArrays
浙公网安备 33010602011771号