zoukankan      html  css  js  c++  java
  • #include <vector>

    双端队列deque比向量vector更有优势

    vector是动态数组,在堆上

    vector比array更常用

    不需要变长,容量较小,用array

    需要变长,容量较大,用vector

    1 at()

    取出下标

    2 c_str()

    执行

    3 clear()

    清空

    4 erase()

    根据迭代器的位置,删除元素

    erase(myvector.begin() + 3)

    5 fill

    填充

    6 find

    7 find_if

    8 find_if_not

    9 insert()

    插入元素

    insert(myvector.begin() + 3, 998);//在第4个位置插入

    10 pop_back()

    删除最后一个元素

    11 push_back()

    push_back,算法语言里面的一个函数名,如c++中的vector头文件里面就有这个push_back函数,在vector类中作用为在vector尾部加入一个数据。

    12 size()

    求数组元素个数

    13 sort

    排序

    14 swap()

    交换

    1 at()

    取出下标

    4 erase()

    根据迭代器的位置,删除元素

    erase(myvector.begin() + 3)

    5 insert()

    插入元素

    insert(myvector.begin() + 3, 998);//在第4个位置插入

    6 pop_back()

    删除最后一个元素

    7 push_back()

    push_back,算法语言里面的一个函数名,如c++中的vector头文件里面就有这个push_back函数,在vector类中作用为在vector尾部加入一个数据。

    8 size()

    求数组元素个数

     1 #include <iostream>
     2 #include <vector>
     3 using namespace std;
     4 
     5 void main()
     6 {
     7     std::vector<int>myvector;//创建一个数组,数组元素是int类型
     8 
     9     myvector.push_back(1);//尾部加入一个数据
    10     myvector.push_back(11);
    11     myvector.push_back(111);
    12     myvector.push_back(1111);
    13     myvector.push_back(2);
    14 
    15     myvector.pop_back();//删除尾部元素
    16 
    17     for (int i = 0; i < myvector.size(); i++)//遍历
    18     {
    19         //std::cout << myvector[i] << std::endl;//上下一样
    20         std::cout << myvector.at(i) << std::endl;//上下一样,at()可以取出下标
    21     }
    22     std::cout << std::endl;
    23 
    24     //根据迭代器的位置删除
    25     myvector.erase(myvector.begin() + 3);//删除第四个元素。删除第3个元素(从0开始计算的话)
    26 
    27     for (int i = 0; i < myvector.size(); i++)//遍历
    28     {
    29         if (1)
    30         {
    31             //可以增加查询,修改功能
    32         }
    33         std::cout << myvector[i] << std::endl;
    34     }
    35     std::cout << std::endl;
    36 
    37     myvector.insert(myvector.begin() + 2, 998);//在第三个位置前插入,新数据变成第三。在第2个位置前插入,新数据变成第2(从0开始计算的话)
    38 
    39     for (int i = 0; i < myvector.size(); i++)//遍历
    40     {
    41         std::cout << myvector[i] << std::endl;
    42     }
    43     std::cout << std::endl;
    44 
    45     system("pause");
    46 }

    2 c_str()

    执行

    3 clear()

    清空

    6 pop_back()

    删除最后一个元素

    7 push_back()

    push_back,算法语言里面的一个函数名,如c++中的vector头文件里面就有这个push_back函数,在vector类中作用为在vector尾部加入一个数据。

    8 size()

    求数组元素个数

     1 #include <iostream>
     2 #include <vector>
     3 using namespace std;
     4 
     5 void main()
     6 {
     7     std::vector<std::string>string1;//定义一个字符串数组
     8 
     9     string1.clear();//clear清空
    10 
    11     string1.push_back("notepad");//push_back尾部加入
    12     string1.push_back("calc");
    13     string1.push_back("mspaint");
    14     string1.pop_back();//pop_back删除尾部元素
    15 
    16     for (int i = 0; i < string1.size(); i++)//size()长度
    17     {
    18         system(string1[i].c_str());//c_str执行,删除了最后一个,因此将会执行两个
    19     }
    20 
    21     system("pause");
    22 }

    //正向迭代器iterator,begin()返回一个迭代器,它指向容器c的第一个元素,end()返回一个迭代器,它指向容器c的最后一个元素的下一个位置

    //反向迭代器reverse_iterator,rbegin()返回一个逆序迭代器,它指向容器c的最后一个元素,rend()返回一个逆序迭代器,它指向容器c的第一个元素前面的位置

    image

    反向迭代器是一种反向遍历容器的迭代器。也就是,从最后一个元素到第一个元素遍历容器。反向迭代器将自增(和自减)的含义反过来了:对于反向迭代 器,++ 运算将访问前一个元素,而 -- 运算则访问下一个元素。

     1 #include <iostream>
     2 #include <vector>
     3 using namespace std;
     4 
     5 void main()
     6 {
     7     std::vector<std::string>string1;//创建一个字符串数组
     8 
     9     string1.clear();//清空
    10 
    11     string1.push_back("notepad");//尾部加入
    12     string1.push_back("calc");
    13     string1.push_back("mspaint");
    14 
    15     //正向迭代器iterator,begin()返回一个迭代器,它指向容器c的第一个元素,end()返回一个迭代器,它指向容器c的最后一个元素的下一个位置
    16     std::vector<std::string>::iterator ibegin, iend;//创建两个迭代器指针
    17     ibegin = string1.begin();//初始化迭代器指针,数据起始点
    18     iend = string1.end();//初始化迭代器指针,结束
    19 
    20     for (; ibegin != iend; ibegin++)//从头到尾
    21     {
    22         std::string tempstr = *ibegin;//创建中间临时变量,获取指针指向的数据
    23         system(tempstr.c_str());//执行
    24     }
    25 
    26     //反向迭代器reverse_iterator,rbegin()返回一个逆序迭代器,它指向容器c的最后一个元素,rend()返回一个逆序迭代器,它指向容器c的第一个元素前面的位置
    27     std::vector<std::string>::reverse_iterator rbegin = string1.rbegin();//创建迭代器指针,数据起始点
    28     std::vector<std::string>::reverse_iterator rend = string1.rend();//创建迭代器指针,结束
    29 
    30     while (rbegin != rend)//从尾到头
    31     {
    32         std::string tempstr = *rbegin;//获取指针指向的数据
    33         system(tempstr.c_str());//执行
    34         rbegin++;//指针移动
    35     }
    36 
    37     system("pause");
    38 }

    7 push_back()

    push_back,算法语言里面的一个函数名,如c++中的vector头文件里面就有这个push_back函数,在vector类中作用为在vector尾部加入一个数据。

    8 size()

    求数组元素个数

    //创建一个数组变量,元素是数组

    vector可用于管理不规则的树状结构

    国家-省-市县

     1 #include <iostream>
     2 #include <vector>
     3 using namespace std;
     4 
     5 void main()
     6 {
     7     std::vector<int>myvector1;//创建一个数组变量,元素是int类型
     8     myvector1.push_back(12);
     9     myvector1.push_back(13);
    10     myvector1.push_back(14);
    11 
    12     std::vector<int>myvector2;//创建一个数组变量,元素是int类型
    13     myvector2.push_back(22);
    14 
    15     std::vector<int>myvector3;//创建一个数组变量,元素是int类型
    16     myvector3.push_back(32);
    17     myvector3.push_back(37);
    18 
    19     std::vector<std::vector<int>>allvector;//创建一个数组变量,元素是数组
    20     allvector.push_back(myvector1);
    21     allvector.push_back(myvector2);
    22     allvector.push_back(myvector3);
    23 
    24     for (int i = 0; i < allvector.size(); i++)//遍历
    25     {
    26         for (int j = 0; j < allvector[i].size(); j++)
    27         {
    28             std::cout << " " << allvector[i][j];
    29         }
    30         std::cout << std::endl;
    31     }
    32 
    33     system("pause");
    34 }

    fill

     1 #include <iostream>
     2 #include <algorithm>
     3 #include <vector>
     4 
     5 template <class T>
     6 class show
     7 {
     8 public:
     9     void operator()(T &t)
    10     {
    11         std::cout << t << " ";
    12     }
    13 };
    14 
    15 void main()
    16 {
    17     std::vector<int>myv;
    18 
    19     myv.push_back(7);
    20     myv.push_back(8);
    21     myv.push_back(9);
    22     myv.push_back(4);
    23     myv.push_back(5);
    24     myv.push_back(6);
    25 
    26     fill(myv.begin() + 2, myv.end(), 10);//从下标2开始到尾部,用10填充
    27     
    28     for_each(myv.begin(), myv.end(), show<int>());
    29 }

    find

     1 #include <iostream>
     2 #include <vector>
     3 
     4 void main()
     5 {
     6     std::vector<int>myv;
     7 
     8     myv.push_back(1);
     9     myv.push_back(2);
    10     myv.push_back(3);
    11 
    12     auto i = find(myv.begin(), myv.end(), 22);
    13 
    14     if (i == myv.end())
    15     {
    16         std::cout << "not found" << std::endl;
    17     }
    18     else
    19     {
    20         std::cout << *i << std::endl;
    21     }
    22 }

    sort

    全部元素排序

     1 #include <iostream>
     2 #include <algorithm>
     3 #include <vector>
     4 
     5 template <class T>
     6 class show
     7 {
     8 public:
     9     void operator()(T &t)
    10     {
    11         std::cout << t << " ";
    12     }
    13 };
    14 
    15 void main()
    16 {
    17     std::vector<int>myv;
    18 
    19     myv.push_back(7);
    20     myv.push_back(8);
    21     myv.push_back(9);
    22     myv.push_back(4);
    23     myv.push_back(5);
    24     myv.push_back(6);
    25 
    26     sort(myv.begin(), myv.end());//排序
    27     
    28     for_each(myv.begin(), myv.end(), show<int>());
    29 }

    sort

    部分元素排序

     1 #include <iostream>
     2 #include <algorithm>
     3 #include <vector>
     4 
     5 template <class T>
     6 struct show
     7 {
     8 public:
     9     void operator()(T &t)
    10     {
    11         std::cout << t << " ";
    12     }
    13 };
    14 
    15 void main()
    16 {
    17     std::vector<char>myv;
    18 
    19     myv.push_back('B');
    20     myv.push_back('A');
    21     myv.push_back('C');
    22     myv.push_back('Y');
    23     myv.push_back('Z');
    24     myv.push_back('X');
    25 
    26     for_each(myv.begin(), myv.end(), show<char>());
    27     std::cout << std::endl;
    28 
    29     sort(myv.begin(), myv.begin() + 3);
    30 
    31     for_each(myv.begin(), myv.end(), show<char>());
    32     std::cout << std::endl;
    33 }
  • 相关阅读:
    Implementing Automation Collections
    PSP 2.0降级至1.5详细教程(转)
    Delphi 7 过期的问题
    Delphi读写COM复合文档用户自定义属性参考代码
    十大经典误会
    Office檔案格式(Office文件格式)
    将表格粘贴为Word可识别的格式
    对字符编码与Unicode,ISO 10646,UCS,UTF8,UTF16,GBK,GB2312的理解
    如何识别键盘左右的shift,Ctrl或Alt键
    SRT File Format
  • 原文地址:https://www.cnblogs.com/denggelin/p/5615415.html
Copyright © 2011-2022 走看看