一、观看PPT教程
【02】STL链表
二、练习题(不清楚回头查看有关PPT)
【01】下面是STL链表的功能测试程序,请补全缺失的注释:
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
#include<iostream>#include<list> //using namespace std;list<int> lis; ////begin()返回指定容器中第一个元素的迭代器void testBegin(){ list<int>::iterator it = lis.begin(); cout << *it << endl;} //void testEnd(){ list<int>::iterator it = lis.end(); cout << *it << endl;}//void testRbegin(){ list<int>::reverse_iterator it = lis.rbegin(); cout << *it << endl;} //void testRend(){ list<int>::reverse_iterator it = lis.rend(); cout << *it << endl;} //遍历void print_list(){ list<int>::iterator it; //从左到右遍历 for(it = lis.begin(); it != lis.end(); it++){ cout << *it << " "; } cout << " | "; list<int>::reverse_iterator rit; // for(rit = lis.rbegin(); rit != lis.rend(); rit++){ cout << *rit << " "; } cout << endl;} //void testFront(){ list<int>::reference ref = lis.front(); // print_list(); ref = 3; // print_list();}//void testBack(){ list<int>::reference ref = lis.back(); print_list(); ref = 10; // print_list();}//void testPush_front(){ lis.push_front(100); // print_list();}//void testPush_back(){ lis.push_back(200); // print_list();}//void testPop_front(){ lis.pop_front(); print_list();}//void testPop_back(){ lis.pop_back(); print_list();}//void testInsert(){ lis.insert(lis.begin(), 4); // print_list(); lis.insert(lis.end(), 7); // print_list(); //建立一个新列表 int dt[] = {8,11,25,29,23}; list<int> lis2; for(int i = 0; i < 5; i++)lis2.push_back(dt[i]); // lis.insert(lis.end(), lis2.begin(), lis2.end()); print_list();}//void testErase(){ lis.erase(lis.begin()); // print_list(); lis.erase(++lis.begin()); //删除第二个元素 print_list(); //删除第二个到倒数第二个(包括) 元素 lis.erase(++lis.begin(), --lis.end()); print_list(); lis.erase(lis.begin(), lis.end()); // print_list();}//void testClear(){ lis.clear(); print_list();}//void testSwap(){ list<int> nlis; for(int i = 1; i < 11; i++)nlis.push_back(i*i); lis.swap(nlis); print_list();}//void testSort(){ lis.sort(); print_list();}//void testReverse(){ lis.reverse(); print_list();}//void testRemove(){ lis.remove(100); // print_list();}//void testUnique(){ lis.unique(); print_list();}//void testMerge(){ list<int> nlis; for(int i = 1; i < 11; i++)nlis.push_back(i*i); lis.sort(); lis.merge(nlis); print_list();}//empty()是否空链表void testEmpty(){ cout << lis.empty() << endl;} //初始化链表void init(){ int data[] = {5,1,1,3,3,1,8,13,5}; for(int i = 0; i < 9; i++)lis.push_back(data[i]);} int main(){ init(); testBegin(); testEnd(); testRbegin(); testRend(); testFront(); testBack(); testPush_front(); testPush_back(); testPop_front(); testPop_back(); testInsert(); testUnique(); testReverse(); testSort(); testMerge(); testRemove(); testErase(); testSwap(); testClear(); testEmpty(); return 0;}
【02】编程题:约瑟夫环
【03】编程题:排队