zoukankan      html  css  js  c++  java
  • c++ -- 顺序容器操作

    专题--顺序容器操作方法

     1 /*顺序容器操作*/
     2 
     3 int main()
     4 {
     5     /*c.size()与c.max_size()*/
     6     list<int> ls={0,1,2,3,4};
     7     cout<<ls.size()<<endl;
     8     cout<<ls.max_size()<<endl;
     9 
    10     /*列表初始化*/
    11     vector<int> vc{0,1,2,3,4};
    12     cout<<vc.empty()<<endl;
    13 
    14     /*将一个容器初始化为另一个容器的拷贝*/
    15     vector<const char*> articles={"a","an"};
    16     //错误,容器类型不一致
    17     //list<string> words(articles);
    18     //正确,拷贝由一个迭代器对指定的元素范围时,不要求容器类型是相同的
    19     list<string> words(articles.begin(),articles.end());
    20 
    21     /*标准库array<T,10>,具有固定大小*/
    22     //剩余元素值初始化为0
    23     array<int,5> digits={0,1,2};
    24     //区别于普通数组:可以拷贝或赋值。只要数组类型(元素类型和大小)匹配就合法。
    25     //array<int,10> copy=digits;   //错误,大小必须一致,大小时array类型的一部分
    26     array<int,5> copy=digits;
    27     for(auto mem:copy)
    28         cout<<mem<<" ";
    29     cout<<endl;
    30 
    31     /*swap(c1,c2):交换操作。要求c1和c2具有相同的类型*/
    32     vector<int> vc1{5,6,7,8,9};
    33     auto it=vc1.begin();
    34     cout<<*it<<endl;    //输出5
    35     //swap()只交换了两个容器的内部数据结构,指向容器的迭代器、引用和指针在swap()操作后都不会失效。
    36     swap(vc1,vc);
    37     cout<<*it<<endl;    //输出5
    38 
    39     /*c1.assign(b,e):替换操作。*/
    40     vc1.assign(ls.begin(),ls.end());
    41     vc1.assign({10,11,12});    
    42     vc1.assign(10,1);
    43 
    44     return 0;
    45 }
  • 相关阅读:
    代码习惯
    全网最详细的fhq treap (非旋treap)讲解
    按位或「HAOI2015」
    列队「NOIP2017」
    愤怒的小鸟「NOIP2016」
    能量传输「CSP多校联考 2019」
    矿物运输「CSP多校联考 2019」
    普通打击「CSP多校联考 2019」
    普通快乐「CSP多校联考 2019」
    BZOJ4385: [POI2015]Wilcze doły
  • 原文地址:https://www.cnblogs.com/cygalaxy/p/7079021.html
Copyright © 2011-2022 走看看