C++简单实现vector

#include 

using namespace std;

#define Basic_Cap 4

template
class Vector
{
private:
    T* _arr;
    int _cap;
    int _size;
public:
    //无参构造
    Vector():_cap(0), _size(0){}
    //有参构造
    Vector(int cap, T e):_cap(cap), _size(cap)
    {
        _arr = new T[cap];
        for(int i=0; i=0 && loc<_size)
        {
            return _arr[loc];
        }
        throw string("所给下标不合法");
    }
    //返回第一个元素
    T& front()
    {
        if(!empty())
            return _arr[0];
        throw string("操作不合法");
    }
    //返回最末一个元素
    T& back()
    {
        if(!empty())
            return _arr[_size-1];
        throw string("操作不合法");
    }
    //插入元素到vector中
    T* insert(int loc, const T& e)
    {
        //判断容器是否达到最大容量
        if(_cap == _size)
        {
            //开辟一个新空间
            T* new_arr = new T[_cap * 2];
            for(int i=0; i<_size; i++)
                new_arr[i] = _arr[i];
            //释放原先内存空间
            delete [] _arr;
            _arr = new_arr;
            _cap *= 2;
        }
        //判断插入位置是否合法,然后插入元素
        if(loc>=0 && loc<=_size)
        {
            for(int i=loc; i<_size; i++)
            {
                _arr[i+1] = _arr[i];
            }
            _arr[loc] = e;
            _size++;
        }
        return &_arr[loc];
    } 
    //对vector中的元素赋值
    void assign(int& num, T& e)
    {
        for(int i=0; i

你可能感兴趣的:(c++,算法,数据结构)