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:类型必须相同

 /*cb14a_c++_顺序容器的的操作7_赋值与交换(swap)
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:类型必须相同 */ #include <iostream>
#include <vector>
#include <list>
#include <deque>
#include <string> using namespace std; int main()
{
vector<int> a;
vector<int> b;
vector<int> c; vector<const char *> svec;
list<string> slist; svec.push_back("apple");
svec.push_back("big");
svec.push_back("cat"); slist.push_back("c");
slist.push_back("c++");
slist.push_back("java");
slist.push_back("c#"); //svec.assign(slist.begin(), slist.end()); //string不能转成字符指针,指针可以转string
cout << "指针转string操作:" << endl;
slist.assign(svec.begin(), svec.end());//这样可以转 svec->slist
for(list<string>::iterator iter=slist.begin();iter!=slist.end();++iter)
cout << *iter << endl; cout << "给slist容器重新赋值2个nice:" << endl;
slist.assign(, "nice");
for (list<string>::iterator iter = slist.begin(); iter != slist.end(); ++iter)
cout << *iter << endl; a.push_back();
a.push_back();
a.push_back();
a.push_back(); b.push_back();
b.push_back();
b.push_back(); c.push_back();
c.push_back();
c.push_back();
c.push_back();
c.push_back();
c.push_back(); a.swap(b); //a与b的数据交换
cout << "交换后,容器a的数据" << endl;
for (vector<int>::iterator iter = a.begin(); iter != a.end(); ++iter)
cout << *iter << endl; a = b; //b容器的数据赋值给a cout << "b容器的数据赋值给a" << endl; for (vector<int>::iterator iter = a.begin(); iter != a.end(); ++iter)
cout << *iter << endl; vector<int>::iterator f = c.begin();
++f;
++f;
vector<int>::iterator e = c.end();
--e;
cout << "把迭代器f到e之间的数据赋值给a." << endl;
a.assign(f, e); //把迭代器f到e之间的数据赋值给a.
//a.assign(c.begin(), c.end());//c的数据赋值给容器a for (vector<int>::iterator iter = a.begin(); iter != a.end(); ++iter)
cout << *iter << endl; return ;
}

cb14a_c++_顺序容器的操作7_赋值与交换(swap)_vector转list的更多相关文章

  1. ca13a_c++_顺序容器的操作6删除元素

    /*ca13a_c++_顺序容器的操作6删除元素c.erase(p) //删除迭代器p指向的位置c.erase(b,e) //删除b to e之间的数据,迭代器b包括,e不包括c.clear()//删 ...

  2. cb11a_c++_顺序容器的操作4_容器大小操作_resize-max_size

    cb11a_c++_顺序容器的操作4 2 容器大小的操作 3 c.size() 容器当前的个数 4 c.max_size(),容器最大存储量 5 c.empty() 是否为空 6 c.resize(n ...

  3. cb10a_c++_顺序容器的操作3关系运算符

    cb10a_c++_cb09a_c++_顺序容器的操作3 2 顺序容器的操作3 3 关系运算符 4 所有的容器类型都可以使用 5 比较的容器必须具有相同的容器类型,double不能与int作比较 6 ...

  4. cb09a_c++_顺序容器的操作2-在顺序容器中添加元素_插入数据

    cb09a_c++_顺序容器的操作2在顺序容器中添加元素vector不能向前插入数据,list可以用insertc.push_back(t);c.push_front(t);c.insert(p,t) ...

  5. cb08a_c++_顺序容器的操作1

    cb08a_c++_顺序容器的操作1容器定义的类型别名begin(闭区间)和end(开区间)成员{first,last)左闭右开,左包括,右不包括,end()指向最后一个的下一个. /*cb08a_c ...

  6. cb16a_c++_顺序容器的选用_排序_二分查找

    /*cb16a_c++_顺序容器的选用_排序_二分查找顺序容器: 1.vector的优点与缺点 vector优点:排序利用下标,快速排序,做二分查找非常快 2.list的优点与缺点 list优点:插入 ...

  7. ca12a_c++顺序容器的操作5_访问容器中的数据元素

    ca12a_c++顺序容器的操作5_访问容器中的数据元素访问元素:c.back()..显示最后一个数据c.front() ..显示第一个数据c[n],n就是下标,适合vector与dequec.at( ...

  8. cb06a_c++_顺序容器的定义

    /*cb06a_c++_顺序容器的定义顺序容器:vector,数组,尾端操作数据,快速随机访问list 链表,快速插入数据deque数组,双端-首尾操作数据,方便两端的数据访问 顺序容器适配器:sta ...

  9. cb03a_c++_数据结构_顺序容器_STL_stack

    /*cb03a_c++_数据结构_顺序容器_STL_stack堆栈:LIFO--Last In First Out后进先出,用于系统程序设计自适应容器(容器适配器),不是独立的容器,是一个适配器栈适配 ...

随机推荐

  1. 快服务常见TOP3审核雷区,再不过审就要崩溃啦!

    仰天大笑出门去,审核提交很神气. 垂死病中惊坐起,突然驳回伤不起. 江州司马青衫湿,重新修改苦自知. 梦里花落知多少,回复马上就改好. 审批被驳回可能是最常见的令开发者头大的问题了,明明看起来&quo ...

  2. Order by 优化

    写在前面 文章涉及到的 customer 表来源于案例库 sakila,下载地址为 http://downloads.mysql.com/docs/sakila-db.zip MySQL 排序方式 通 ...

  3. 华容道题解 NOIP2013 思路题!

    第一次发紫题题解,居然在发布前太激动,把刚写好的还没发布的题解一个Ctrl+A和Backspace全删了.(所以这是二稿) luogu题目传送门 前置: 做本题一定要有的一些思想: 1.从简思想: 模 ...

  4. Servlet配置及生命周期

    1.设置Ecilipse快捷  file new 2.创建Servlet程序 1). 创建一个 Servlet 接口的实现类.              public class HelloServl ...

  5. Rocket - util - IDPool

    https://mp.weixin.qq.com/s/Pe7FGKzfRufzzYDrl0fQ7g   介绍IDPool的实现.   ​​   1. 基本介绍   实现从ID池中分配和释放ID的功能. ...

  6. Java实现 LeetCode 731 我的日程安排表 II(二叉树)

    731. 我的日程安排表 II 实现一个 MyCalendar 类来存放你的日程安排.如果要添加的时间内不会导致三重预订时,则可以存储这个新的日程安排. MyCalendar 有一个 book(int ...

  7. Java实现 LeetCode 641 设计循环双端队列(暴力)

    641. 设计循环双端队列 设计实现双端队列. 你的实现需要支持以下操作: MyCircularDeque(k):构造函数,双端队列的大小为k. insertFront():将一个元素添加到双端队列头 ...

  8. Java实现 LeetCode 412 Fizz Buzz

    412. Fizz Buzz 写一个程序,输出从 1 到 n 数字的字符串表示. 如果 n 是3的倍数,输出"Fizz": 如果 n 是5的倍数,输出"Buzz" ...

  9. Java实现 LeetCode 315 计算右侧小于当前元素的个数

    315. 计算右侧小于当前元素的个数 给定一个整数数组 nums,按要求返回一个新数组 counts.数组 counts 有该性质: counts[i] 的值是 nums[i] 右侧小于 nums[i ...

  10. Java实现 蓝桥杯VIP 算法提高 聪明的美食家

    算法提高 聪明的美食家 时间限制:1.0s 内存限制:256.0MB 问题描述 如果有人认为吃东西只需要嘴巴,那就错了. 都知道舌头有这么一个特性,"由简入奢易,由奢如简难"(据好 ...