1. 程式人生 > 其它 >C++ 提高程式設計 List容器

C++ 提高程式設計 List容器

#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>

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; 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;
}