• cb14a_c++_顺序容器的操作7_赋值与交换(swap)_vector转list


    cb14a_c++_顺序容器的操作7_赋值与交换(swap)

    vector数据赋值给list,

     slist.assign(svec.begin(), svec.end());//这样可以转 svec->slist


    c1=c2; //c2容器的数据赋值给c1
    c1.swap(c2); //c1与c2数据交换
    c.assign(b,e); //用于赋值,类型兼容就可以

    svec.assign(slist.begin(), slist.end()); //string不能转成字符指针,指针可以转string
    error C2440: “=”: 无法从“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”转换为“const char *”
    slist.assign(svec.begin(), svec.end());//这样可以转

    c.assign(n,t),指定数量的数据,重新进行赋值。 slist.assign(10,"nice"); 给slist 容器直接赋值10个nice.
    使用assign:类型兼容即可
    使用swap:类型必须相同

     1 /*cb14a_c++_顺序容器的的操作7_赋值与交换(swap)
     2 c1=c2; //c2容器的数据赋值给c1
     3 c1.swap(c2); //c1与c2数据交换
     4 c.assign(b,e); //用于赋值,类型兼容就可以
     5 
     6 svec.assign(slist.begin(), slist.end()); //string不能转成字符指针,指针可以转string
     7 error C2440: “=”: 无法从“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”转换为“const char *”
     8 slist.assign(svec.begin(), svec.end());//这样可以转
     9 
    10 c.assign(n,t),指定数量的数据,重新进行赋值。 slist.assign(10,"nice"); 给slist 容器直接赋值10个nice.
    11 使用assign:类型兼容即可
    12 使用swap:类型必须相同
    13 
    14 
    15 */
    16 
    17 #include <iostream>
    18 #include <vector>
    19 #include <list>
    20 #include <deque>
    21 #include <string>
    22 
    23 using namespace std;
    24 
    25 int main()
    26 {
    27     vector<int> a;
    28     vector<int> b;
    29     vector<int> c;
    30 
    31     vector<const char *> svec;
    32     list<string> slist;
    33 
    34     svec.push_back("apple");
    35     svec.push_back("big");
    36     svec.push_back("cat");
    37 
    38     slist.push_back("c");
    39     slist.push_back("c++");
    40     slist.push_back("java");
    41     slist.push_back("c#");
    42 
    43     //svec.assign(slist.begin(), slist.end()); //string不能转成字符指针,指针可以转string
    44     cout << "指针转string操作:" << endl; 
    45     slist.assign(svec.begin(), svec.end());//这样可以转 svec->slist
    46     for(list<string>::iterator iter=slist.begin();iter!=slist.end();++iter)
    47         cout << *iter << endl;
    48 
    49     cout << "给slist容器重新赋值2个nice:" << endl;
    50     slist.assign(2, "nice");
    51     for (list<string>::iterator iter = slist.begin(); iter != slist.end(); ++iter)
    52         cout << *iter << endl;
    53 
    54 
    55 
    56     a.push_back(10);
    57     a.push_back(20);
    58     a.push_back(30);
    59     a.push_back(40);
    60 
    61     b.push_back(100);
    62     b.push_back(200);
    63     b.push_back(300);
    64 
    65     c.push_back(1);
    66     c.push_back(2);
    67     c.push_back(3);
    68     c.push_back(4);
    69     c.push_back(5);
    70     c.push_back(6);
    71 
    72 
    73     a.swap(b); //a与b的数据交换
    74     cout << "交换后,容器a的数据" << endl;
    75     for (vector<int>::iterator iter = a.begin(); iter != a.end(); ++iter)
    76         cout << *iter << endl;
    77 
    78     a = b; //b容器的数据赋值给a
    79 
    80     cout << "b容器的数据赋值给a" << endl;
    81     
    82     for (vector<int>::iterator iter = a.begin(); iter != a.end(); ++iter)
    83         cout << *iter << endl;
    84 
    85     vector<int>::iterator f = c.begin();
    86     ++f;
    87     ++f;
    88     vector<int>::iterator e = c.end();
    89     --e;
    90     cout << "把迭代器f到e之间的数据赋值给a." << endl;
    91     a.assign(f, e); //把迭代器f到e之间的数据赋值给a.
    92     //a.assign(c.begin(), c.end());//c的数据赋值给容器a
    93 
    94     for (vector<int>::iterator iter = a.begin(); iter != a.end(); ++iter)
    95         cout << *iter << endl;
    96 
    97 
    98     return 0;
    99 }
    欢迎讨论,相互学习。 txwtech@163.com
  • 相关阅读:
    设置SSH编码为中文
    深入浅出REST架构 REST架构概述
    RESTful Web Services初探
    Linux 基础命令
    Linux 目录和文件操作
    Linux 压缩文件的命令行总结
    Linxu 监控命令总结
    Linux 下Tomcat的启动、关闭、杀死进程
    Linux日知录(常用问题笔记)
    linux 下远程连接mysql命令详解
  • 原文地址:https://www.cnblogs.com/txwtech/p/12317531.html
Copyright © 2020-2023  润新知