• 顺序容器--添加及访问元素


    #include<iostream>
    #include <vector>
    #include<string>
    #include <list>
    #include <deque>
    #include<forward_list>
    using namespace std;
    int main(int argc, char**argv)
    {
        list<string>slist;
        slist.insert(slist.begin(),"10");
        slist.insert(slist.end(), "12");
        vector<string>Vstring{ "hello", "aff", "teny" };
        Vstring.insert(Vstring.end(), slist.begin(), slist.end());
        //Vstring.insert(Vstring.begin(), { "asasf", "assdf" });//错误显示无效的迭代器范围
        vector<string>::iterator it = Vstring.begin();
        cout << *it<<endl;
    
    
        ////////////////////////////////////////////////
        int som_val = 1;
        vector<int>iv = { 1, 1, 1, 1, 1, 1, 1, 1 };
        vector<int> ::iterator Viter = iv.begin();
        int org_size = iv.size(), new_ele = 0;
        while (Viter!=(iv.begin()+org_size/2+new_ele))
            if (*Viter == som_val)
            {
                Viter=iv.insert(Viter, 2 * som_val);//当容器vector插入新数据后,会重排,导致原有迭代器失效。此时可以迭代两次,使其推到下一个新位置上
                Viter++;
                Viter++;//要使用Viter++;必须用操作后返回的iterator值而不仅仅只执行iv.insert();操作
            //  new_ele++;//作为标记位
            }
        else
            Viter++;
    
    
        ////////////////////////////////////////////////
        //back不适用于forward_list
        //at和下标操作只适用于string vector deque array
        //cout << iv.at[4];
        cout << iv.at(4); 
        cout << iv[3];
        cout<<iv.front();
    
        ////////////////////////////////////////////////
        vector<int>nullvector;
        nullvector.at(0);
        cout << nullvector[0];
        //对于一个空容器调用front和back就像使用一个越界的下标一样 ,是一种严重的程序设计错误,所以他会抛出异常图片1是抛出异常结果
    
    
    
        /////////////////////////////////////////////// 
        list<string>lst;
        auto iter = lst.begin();
        string word;
        while (cin>>word)
        {
            iter = lst.insert(iter, word);
        }
        for (auto it = lst.cbegin(); it != lst.end(); it++)
        {
            cout << *it << endl;
        }
    
        cin.clear();//将cin的状态清除要不然cin默认遇到eof置为有效位
    
    
        ////////////////////////////////////////////////deque
        deque<string>Deque;
        string Dword;
        while (cin >> Dword)
            Deque.push_back(Dword);
        for (auto it = Dword.begin(); it != Dword.end();it++)
        {
            cout << *it << endl;
        }
        cin.clear();
    
        /////////////////////////////////////////////////list
        list<string>iList;
        string Lword;
        while (cin >> Lword)
            iList.push_back(Lword);
        for (auto it = iList.cbegin(); it != iList.end(); it++)
        {
            cout << *it << endl;
        }
        cin.clear();
        system("pause");
    
    }
    

    这里写图片描述

  • 相关阅读:
    LeetCode 23. Merge k Sorted Lists
    第四章 基本TCP套接字编程 第五章 TCP客户/服务器程序实例
    LeetCode 18. 4Sum
    LeetCode 16. 3Sum Closest
    Leetcode题 257. Binary Tree Paths
    Django---Form表单
    Python---面向对象(二)
    Python---面向对象(一)
    Django---Cookie && Session && 分页
    [ Day51 ]Python之路----JavaScript --DOM操作
  • 原文地址:https://www.cnblogs.com/VCctor/p/5100694.html
Copyright © 2020-2023  润新知