C++11自定义实现vector

本文介绍如何在C++11中自定义实现vector,内容涵盖模板类定义、数据成员(连续内存首t,元素数量size,已分配空间len)以及支持移动和使用移动操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C++11自定义实现vector

如果有错误欢迎大家指出。

  1. 不是标准答案!!!
  2. 模板类所有内容都在头文件定义。
  3. 数据成员为连续内存首 t,元素数量size,已分配空间len。
  4. 支持移动使用移动。
#ifndef MYVECTOR_H
#define MYVECTOR_H

#include<memory>
#include "myIterator.h"

template<class T>
class myVector
{
   
   
public:
    typedef T value_type;
    //typedef Iterator<T> Iterator;
    typedef  T* Iterator;

    myVector();
    myVector(const Iterator beg, const Iterator end);
    myVector(const int n);
    myVector(const myVector& a);
    ~myVector();

    Iterator begin() const;
    Iterator end() const;

    int size() const;
    int capacity() const;
    void reserve(const int newCapacity);
    void push_back(const T& v);
    void  pop_back();
    T& back();
    bool empty() const;

    T& operator[](int i) const;

    Iterator insert(Iterator pos, const T& val);
    Iterator erase(Iterator pos);

    void clear();


private:
    T* t_;
    int size_;
    int len_;
};

template<class T>
myVector<T>::myVector() :
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值