万千只cnm 发表于 2021-9-23 17:39:04

对数组push_back

本帖最后由 万千只cnm 于 2021-9-23 17:44 编辑

template<class T>
void
arrayList<T>::push_back(T theElement){
   
   if(listSize == arrayLength)
         ChangeArray();//默认翻两倍
      copy_backward(element+arrayLength-listSize,element+arrayLength-1,element+arrayLength-2);
      element=theElement;
      listSize++;
}
template<class T>
void
arrayList<T>::pop_back(){
   if(empty()){
         cout<<"error"<<endl;
         exit(1);
   }
      copy_backward(element+arrayLength-listSize,element+arrayLength-2,element+arrayLength-1);
      listSize--;
      
}请问哪里错了呀 到copy函数直接断了
以下下是部分内容
template<class T>
class arrayList:public linearList<T> //从抽象类派生出的具体类(必须全部实现基类的函数才算)
{
   public:
      arrayList(int initCapacity =10); //构造函数
      arrayList(const arrayList<T>&);//赋值函数
      arrayList(const arrayList<T>&,const int ReInit = 0);
      ~arrayList(){
          delete [] element;
void push_back(T theElement);
      void pop_back();
   protected:
         
         T *element;
         int arrayLength;
         int listSize;
      }

int main(){
   
   arrayList<int> a(10),b(20);
      a.push_back(9);
      a.push_back(100);
      a.push_back(999);
      cout<<a<<endl;
      a.pop_back();
      cout<<a;
      
   
    return 0;

}

万千只cnm 发表于 2021-9-23 17:48:20

copy_backward(element+arrayLength-listSize,element+arrayLength-2,element+arrayLength-1);
从数组末尾添加元素 跟栈一样
我用copy整体往前移一个 然后赋值最后一个元素,为什么copy会不行呢
element+arrayLength-listSize 是第一个元素
element+arrayLength-1是最后一个元素

万千只cnm 发表于 2021-9-23 18:57:41

template<class T>
void
arrayList<T>::push_back(T theElement){
   
   if(listSize == arrayLength)
         ChangeArray();//默认翻两倍
      //第三个参数
      copy_backward(element+arrayLength-listSize,element+arrayLength,element+arrayLength-1);//第二个尾部迭代器
      element=theElement;
      listSize++;
}
template<class T>
void
arrayList<T>::pop_back(){
   if(empty()){
         cout<<"error"<<endl;
         exit(1);
   }
      copy_backward(element+arrayLength-listSize,element+arrayLength,element+arrayLength+1);
      listSize--;
      
}
好像调对了
第三个参数到底是啥 头指针?

newu 发表于 2021-9-23 21:36:45

眼睛都看花了{:10_266:}
页: [1]
查看完整版本: 对数组push_back