C++ STL学习笔记---------list
#include <iostream>
#include <list>
using namespace::std;
void printList(const list<int>& L)
{
for (list<int>::const_iterator it = L.begin(); it != L.end(); it++)
{
cout << *it << " ";
}
cout << endl;
}
void test01()
{
cout << "list构造函数:" << endl;
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);
}
void test02()
{
cout << "list的赋值:" << endl;
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 test03()
{
cout << "list的交换:" << endl;
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);
}
void test04()
{
cout << "list的大小操作:" << endl;
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);
}
void test05()
{
cout << "list的插入和删除:" << endl;
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);
}
void test06()
{
cout << "list数据存取" << endl;
list<int>L1;
L1.push_back(10);
L1.push_back(20);
L1.push_back(30);
L1.push_back(40);
cout << "第一个元素为: " << L1.front() << endl;
cout << "最后一个元素为: " << L1.back() << endl;
list<int>::iterator it = L1.begin();
}
bool myCompare(int val1, int val2)
{
return val1 > val2;
}
void test07()
{
cout << "list的反转和排序:" << endl;
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();
test02();
test03();
test04();
test05();
test06();
test07();
system("pause");
return 0;
}
调试结果
