c/c++语言开发共享c/c++ 标准容器 之 初始化, 赋值, swap, 比较

c/c++ 标准容器 之 初始化, 赋值, swap, 比较 知识点 1,容器的初始化,对应代码里的test1 2,标准库array的初始化,对应代码里的test2 3,容器的赋值 ,对应代码里的test3 4,容器的swap,对应代码里的test4 5,容器的比较(==,!=, , =, incl …


c/c++ 标准容器 之 初始化, 赋值, swap, 比较

知识点

1,容器的初始化,对应代码里的test1

2,标准库array的初始化,对应代码里的test2

3,容器的赋值 ,对应代码里的test3

4,容器的swap,对应代码里的test4

5,容器的比较(==,!=,>,>=,<,<=),对应代码里的test5

#include <iostream> #include <list> #include <vector> #include <string> #include <deque> #include <forward_list> #include <array>  using namespace std;  int main(){   //test1 容器的初始化                                                             /*                                                                               list<string> au = {"mm","dd","yy"};                                              vector<const char*> arti = {"a","b","c"};                                        list<string> li(au);                                                             //deque<string> de(au);//错误:容易类型不匹配                                    //vector<string> v(arti);//错误:容易类型不匹配                                  deque<string> de(au.begin(), au.end());                                          deque<string> d2(arti.cbegin(), arti.cend());                                    vector<string> v1(au.begin(), au.end());                                         vector<string> v2(arti.cbegin(), arti.cend());                                   forward_list<string> f1(au.begin(),au.end());                                                                                                                     list<string> l(5,"aa");//包含5个"a"                                              forward_list<int> iv(10);//包含10个0;                                           deque<string> d(3);//包含3个空string                                             */    //test2 标准库array的初始化                                                      //标准库array的大小属于类型的一部分,内置数组不可以赋值和拷贝,但是array可以     /*                                                                               array<int,5> a1;                                                                 array<string,3> a2;                                                              array<int,5>::size_type i;                                                       //array<int>::size_type j;//错误,没有提供数组的大小                             array<int,4> a3 = {1,2,3,4};                                                     array<int,3> a4 = {1};//a4[0]为1,其余为0                                        for(auto s : a4){                                                                  cout << s << " ";                                                              }                                                                                cout << endl;                                                                    int ia[] = {1,2,3};                                                              //int cpy[3] = ia;//错误                                                         array<int, 3> ia2 = {1};                                                         array<int, 3> ia3 = ia2;                                                         ia3 = {3,4};//ia3变成3,4,0                                                       for(auto s : ia3){                                                                 cout << s << " ";                                                              }                                                                                cout << endl;                                                                    //array<int, 3> ia4(ia);//错误                                                   //array<int, 3> ia5 = ia;//错误                                                  */    //test3 容器的赋值                                                               //assign的作用:先清空容器里所有的元素,再把新的元素添加进去                     /*                                                                               list<string> li;                                                                 vector<char*> ol;                                                                //li = ol;//错误,容器类型不匹配                                                 li.assign(ol.cbegin(), ol.cend());                                               list<string> l2(3, "aa");                                                        l2.assign(2,"bb");                                                               for(auto const s : l2){                                                            cout << s << " ";                                                              }                                                                                cout << endl;                                                                    */    //test4 容器的swap                                                               //swap不交换容器里的元素,只是交换两个容器内部的数据结构                         /*                                                                               list<int> l1(3,10);                                                              list<int> l2(4,9);                                                               swap(l1, l2);                                                                    for(auto const &s : l1){                                                           cout << s << " ";                                                              }                                                                                cout << endl;                                                                    for(auto const &s : l2){                                                           cout << s << " ";                                                              }                                                                                cout << endl;                                                                    */    //test5 容器的比较(==,!=,>,>=,<,<=)                                              //是否可以使用比较运算符,取决于容器里的元素是否重写了这个运算符                 vector<int> v1 = {1,3,5,7,9,12};   vector<int> v2 = {1,3,9};   vector<int> v3 = {1,3,5,7};   vector<int> v4 = {1,3,5,7,9,12};   cout << (v1 < v2) << endl;//true                                                 cout << (v1 < v3) << endl;//false                                                cout << (v1 == v4) << endl;//true                                                cout << (v1 == v2) << endl;//false                                               class test{};   list<test> l1(2);   list<test> l2(3);   //cout << (l1 < l2) << endl;//错误,类test没有重写<方法,所有无法比较             return 0; }

c/c++ 学习互助qq群:877684253(c/c++ 留声机)

本人微信:xiaoshitou5854

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/c-cdevelopment/608003.html

(0)
上一篇 2021年5月14日
下一篇 2021年5月14日

精彩推荐