ArrayList implementation C++
ArrayList implementation C++
我需要为大学写一个IntArray实现。我想知道我的代码是否可以更好。它是否有效。头文件中列出了我们需要编写的方法。由于
头文件:
#ifndef INTARRAY_H_
#define INTARRAY_H_
#include <iostream>
using namespace std;
class IntArray{
private:
int length;
int * data;
public:
IntArray(int size = 0);
IntArray(const IntArray& other);
IntArray& operator=(const IntArray& original);
int getSize() const { return length; };
int& operator[](unsigned int i);
void resize(unsigned int size);
void insertBefore(int value, int index);
friend ostream& operator<<(ostream& out, const IntArray& list);
~IntArray(){ delete[] data; };
};
#endif
Cpp文件:
#include "IntArray.h"
IntArray::IntArray(int size){
length = size;
data = new int[size];
for(int i=0; i<size; i++){
data[i] = 0;
}
}
IntArray::IntArray(const IntArray& other){
length = other.length;
data = new int[length];
for(int i=0; i<length; i++){
data[i] = other.data[i];
}
}
IntArray& IntArray::operator =(const IntArray& other){
if(this = &other){
return *this;
}
length = other.length;
data = new int[length];
for(int i = 0; i <length;i++){
data[i] = other[i];
}
return *this;
}
int& IntArray::operator[](unsigned int i){
if(i>=this->length) throw "Index out of bounds";
return data[i];
}
ostream& operator<<(ostream& out, const IntArray& list){
for(int i=0; i<list.getSize(); i++){
out << list.data[i] << " ";
}
return out;
}
void IntArray::resize(unsigned size){
if (size <= length){
length = size;
return;
}
int * temparr = new int[size];
// copy data
for (unsigned int i = 0; i < length; ++i){
temparr[i] = data[i];
}
delete [] data;
data = temparr;
length = size;
}
void IntArray::insertBefore(int value, int index){
resize(length+1);
for(int i=length-1; i>index; i--){
data[i] = data[i-1];
}
data[index] = value;
}
添加next方法将使您的容器更方便使用:
void pushFront(int value);
int popFront();
void pushBack(int value);
int popBack();
void clearAll();
同样,使用迭代器使容器更高效。c++中的迭代器设计模式
相关文章:
- Softmax Implementation in C++
- 在陈述"Implementation-defined"时,什么样的软件是"Implementation"的一部分?究竟什么是"Implementation"?
- 对于代理容器上的迭代器来说,"least bad implementation"可能是什么?
- STL binary_search() implementation
- Android Studio 3.1.2 - 无法运行C++子例程"No implementation found for Java.lang.String..."
- Vivado HLS implementation of RISCV
- C++ Class implementation
- c++ is_member_pointer implementation
- shared_mutex C++11 implementation
- VC++ implementation of std::promise
- libc++ implementation of std::condition_variable_any
- Paypal implementation...c++
- Boost Mutex implementation for Windows
- Implementation of mergesort
- C++ `Timer` class implementation
- BFS implementation
- C++ NTP Server implementation
- Low level implementation of bitwise Mod
- std::list implementation&pointer arithemetic.
- SIMD Implementation of std::nth_element