// 自定义ArrayList类,实现线性列表(类似数组)结构的数据元素操作。操作方法: // 1. add(int) 添加int整型的数据元素 // 2. remove(int) 删除数据元素 // 3. int get(int index) 获取指定位置的元素 // 4. void print() 打印列表中所有元素 // 5. int size() 返回列表的当前大小 // 6. void sort(bool reversed = false) 元素排序,reversed为true时,表示从大小到小,反之,表示从小到到。 #include #include #include #include #include using namespace std; class ArrayList { private: vector elements; // 动态数组元素 public: void add(int value) // 添加 int 整型的数据元素 { elements.push_back(value); } void remove(int index) // 删除数据元素 { int size = elements.size(); if (index >= 0 && index < size) elements.erase(elements.begin() + index); } int get(int index) // 获取指定位置的元素 { int size = elements.size(); if (index >= 0 && index < size) return elements[index]; return -1; // 返回无效索引,表示未找到元素 } void print() // 打印列表中的所有元素 { for (int i = 0; i < elements.size(); i++) cout << elements[i] << " "; } int size() // 返回列表的当前大小 { return elements.size(); } void sort(bool reversed = false) // 默认从小到大排序,当reversed 为 true 时,从大到小排序 { if (reversed == true) std::sort(elements.rbegin(), elements.rend()); else std::sort(elements.begin(), elements.end()); } }; int main() { ArrayList list; list.add(5); list.add(2); list.add(8); list.add(9); list.add(13); cout << "原始列表: "; list.print(); cout << endl; cout << "列表大小为: " << list.size() << endl; cout << "删除第二位的元素后显示为: "; list.remove(2); list.print(); cout << endl; cout << "此时第二位的元素为: " << list.get(2) << endl; cout << "从大到小排序后列表为: "; list.sort(true); list.print(); cout << endl; cout << "从小到大排序后列表为: "; list.sort(); list.print(); cout << endl; return 0; }