vector模板的一点问题
自己练习写了个vec模板,有个函数一直出问题,哪里有问题啊
template <typename T>
class vec
{ ...
friend vec<T> operator+ <T>(const vec<T> &,const vec<T> &);
private:
iterator m_start;
iterator m_finished;
iterator m_limit;
allocator<T> alloc; //用作分配动态地址
};
template <typename T> vec<T> operator+(const vec<T> &v1,const vec<T> &v2)//两个vec连接起来
{
vec<T> v;
auto data=v.alloc.allocate(v1.size()+v2.size());
auto enu=uninitialized_copy(v1.begin(),v1.end(),data);
enu=uninitialized_copy(v2.begin(),v2.end(),enu);
v.m_start=data;
v.m_finished=v.m_limit=enu;
return v;
}
编译会有问题,坐等大佬
template <typename T>
class vec
{ ...
friend vec<T> operator+ <T>(const vec<T> &,const vec<T> &);
private:
iterator m_start;
iterator m_finished;
iterator m_limit;
allocator<T> alloc; //用作分配动态地址
};
template <typename T> vec<T> operator+(const vec<T> &v1,const vec<T> &v2)//两个vec连接起来
{
vec<T> v;
auto data=v.alloc.allocate(v1.size()+v2.size());
auto enu=uninitialized_copy(v1.begin(),v1.end(),data);
enu=uninitialized_copy(v2.begin(),v2.end(),enu);
v.m_start=data;
v.m_finished=v.m_limit=enu;
return v;
}
编译会有问题,坐等大佬
...全文
相关推荐
C++ vector用法详解[代码]
但是,需要注意的是,频繁的内存重新分配和复制可能会导致性能问题,特别是当vector存储的元素较大或者元素数量非常多时。
C++ vector使用与实现[可运行源码]
C++中的vector是一种动态数组类模板,属于标准模板库(STL)的一部分。它能够存储类型相同的对象序列,并且可以动态地改变大小。
C++二维vector使用[可运行源码]
这一点对于初学者来说,是容易忽视且导致错误的常见问题。在插入元素时,需要避免错误的直接操作方式。
C++ Vector的详细讲解
对于程序员来说,Vector是解决各种问题时的首选数据结构之一,因为它既简单又功能强大。不过,它的性能开销要比普通数组大一些,尤其是频繁地插入和删除操作,这一点在处理大量数据时尤其需要注意。
C++ vector详解与模拟实现[代码]
C++中的vector是一种非常实用的标准模板库容器,它主要用来存储和管理动态数组。vector类似于数组,但是其大小可以动态调整。


