C++ arraylist实现

来源:互联网 发布:淘宝访客突然少了很多 编辑:程序博客网 时间:2024/06/05 02:03
#include <iostream>using namespace std;class DynamicArray {public:DynamicArray();DynamicArray(int initSize);DynamicArray(const DynamicArray &original);~DynamicArray();void insert(int position, int value); int get(int position);  int getSize();void resize(int newSize);int &operator[](int index);bool operator==(DynamicArray);bool operator!=(DynamicArray);private:int size;  int *array;};DynamicArray::DynamicArray() {DynamicArray::DynamicArray(5);}DynamicArray::DynamicArray(int initSize) {size = initSize;array = new int[size];for (int i = 0; i < size; i++) {array[i] = 0; // Fill with zeroes}}DynamicArray::DynamicArray(const DynamicArray &original) {size  = original.size;array = new int[size];for (int i = 0; i < size; i++) {array[i] = original.array[i];}}DynamicArray::~DynamicArray() {delete[] array;}void DynamicArray::insert(int position, int value) {array[position] = value;}int DynamicArray::get(int position) {return array[position];}int DynamicArray::getSize() {return size;}void DynamicArray::resize(int newSize) {int *temp;temp = new int[newSize];for (int i = 0; i < (newSize); i++) {temp[i] = array[i];}delete[] array;array = temp;size = newSize;}bool DynamicArray::operator==(DynamicArray a)  {if (a.size != size) return false;for (int i = 0; i < (a.size); i++) {if (a[i] != array[i]) return false;}}bool DynamicArray::operator!=(DynamicArray a)  {if (a.size != size) return true;for (int i = 0; i < (a.size); i++) {if (a[i] != array[i]) return true;}}int &DynamicArray::operator[](int index) {if ((index - 1) > size) {resize(index + 1);}return array[index]; // returned as a reference}int main(int argc, char **argv) {cout << "Dynamic array..." << endl;DynamicArray array = DynamicArray(4);array.insert(1, 7);array.insert(3, 2);array[2] = 4;array[10] = 4;cout << "Pole naplněno." << endl;DynamicArray array2 = DynamicArray(array);if (array == array2) {cout << "Kopírovací konstruktor a porovnávání funguje." << endl;}array[1] = 9999111;if (array != array2) {cout << "Pole jsou správně považována za nestejná." << endl;}system("pause");return 0;}

0 0
原创粉丝点击