C++ 提高程式設計 List容器
阿新 • • 發佈:2021-09-27
#include <list> void printList(const list<int>& L) { for (list<int>::const_iterator it = L.begin(); it != L.end(); it++) { cout << *it << " "; } cout << endl; } void test01() { list<int>L1; L1.push_back(10); L1.push_back(20); L1.push_back(30); L1.push_back(40); printList(L1); list<int>L2(L1.begin(),L1.end()); printList(L2); list<int>L3(L2); printList(L3); list<int>L4(10, 1000); printList(L4); } int main() { test01(); system("pause"); return 0; }
#include <list> voidprintList(const list<int>& L) { for (list<int>::const_iterator it = L.begin(); it != L.end(); it++) { cout << *it << " "; } cout << endl; } //賦值和交換 void test01() { list<int>L1; L1.push_back(10); L1.push_back(20); L1.push_back(30); L1.push_back(40); printList(L1); //賦值 list<int>L2; L2 = L1; printList(L2); list<int>L3; L3.assign(L2.begin(), L2.end()); printList(L3); list<int>L4; L4.assign(10, 100); printList(L4); } //交換 void test02() { list<int>L1; L1.push_back(10); L1.push_back(20); L1.push_back(30); L1.push_back(40); list<int>L2; L2.assign(10, 100); cout << "交換前: " << endl; printList(L1); printList(L2); cout << endl; L1.swap(L2); cout << "交換後: " << endl; printList(L1); printList(L2); } int main() { //test01(); test02(); system("pause"); return 0; }
#include <list> void printList(const list<int>& L) { for (list<int>::const_iterator it = L.begin(); it != L.end(); it++) { cout << *it << " "; } cout << endl; } //大小操作 void test01() { list<int>L1; L1.push_back(10); L1.push_back(20); L1.push_back(30); L1.push_back(40); if (L1.empty()) { cout << "L1為空" << endl; } else { cout << "L1不為空" << endl; cout << "L1的大小為: " << L1.size() << endl; } //重新指定大小 L1.resize(10); printList(L1); L1.resize(2); printList(L1); } int main() { test01(); system("pause"); return 0; }
#include <list> void printList(const list<int>& L) { for (list<int>::const_iterator it = L.begin(); it != L.end(); it++) { cout << *it << " "; } cout << endl; } //插入和刪除 void test01() { list<int> L; //尾插 L.push_back(10); L.push_back(20); L.push_back(30); //頭插 L.push_front(100); L.push_front(200); L.push_front(300); printList(L); //尾刪 L.pop_back(); printList(L); //頭刪 L.pop_front(); printList(L); //插入 list<int>::iterator it = L.begin(); L.insert(++it, 1000); printList(L); //刪除 it = L.begin(); L.erase(++it); printList(L); //移除 L.push_back(10000); L.push_back(10000); L.push_back(10000); printList(L); L.remove(10000); printList(L); //清空 L.clear(); printList(L); } int main() { test01(); system("pause"); return 0; }
#include <list> //資料存取 void test01() { list<int>L1; L1.push_back(10); L1.push_back(20); L1.push_back(30); L1.push_back(40); //cout << L1.at(0) << endl;//錯誤 不支援at訪問資料 //cout << L1[0] << endl; //錯誤 不支援[]方式訪問資料 cout << "第一個元素為: " << L1.front() << endl; cout << "最後一個元素為: " << L1.back() << endl; //list容器的迭代器是雙向迭代器,不支援隨機訪問 list<int>::iterator it = L1.begin(); //it = it + 1;//錯誤,不可以跳躍訪問,即使是+1 } int main() { test01(); system("pause"); return 0; }
void printList(const list<int>& L) { for (list<int>::const_iterator it = L.begin(); it != L.end(); it++) { cout << *it << " "; } cout << endl; } bool myCompare(int val1 , int val2) { return val1 > val2; } //反轉和排序 void test01() { list<int> L; L.push_back(90); L.push_back(30); L.push_back(20); L.push_back(70); printList(L); //反轉容器的元素 L.reverse(); printList(L); //排序 L.sort(); //預設的排序規則 從小到大 printList(L); L.sort(myCompare); //指定規則,從大到小 printList(L); } int main() { test01(); system("pause"); return 0; }