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:类型必须相同
/*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的更多相关文章
- ca13a_c++_顺序容器的操作6删除元素
/*ca13a_c++_顺序容器的操作6删除元素c.erase(p) //删除迭代器p指向的位置c.erase(b,e) //删除b to e之间的数据,迭代器b包括,e不包括c.clear()//删 ...
- cb11a_c++_顺序容器的操作4_容器大小操作_resize-max_size
cb11a_c++_顺序容器的操作4 2 容器大小的操作 3 c.size() 容器当前的个数 4 c.max_size(),容器最大存储量 5 c.empty() 是否为空 6 c.resize(n ...
- cb10a_c++_顺序容器的操作3关系运算符
cb10a_c++_cb09a_c++_顺序容器的操作3 2 顺序容器的操作3 3 关系运算符 4 所有的容器类型都可以使用 5 比较的容器必须具有相同的容器类型,double不能与int作比较 6 ...
- cb09a_c++_顺序容器的操作2-在顺序容器中添加元素_插入数据
cb09a_c++_顺序容器的操作2在顺序容器中添加元素vector不能向前插入数据,list可以用insertc.push_back(t);c.push_front(t);c.insert(p,t) ...
- cb08a_c++_顺序容器的操作1
cb08a_c++_顺序容器的操作1容器定义的类型别名begin(闭区间)和end(开区间)成员{first,last)左闭右开,左包括,右不包括,end()指向最后一个的下一个. /*cb08a_c ...
- cb16a_c++_顺序容器的选用_排序_二分查找
/*cb16a_c++_顺序容器的选用_排序_二分查找顺序容器: 1.vector的优点与缺点 vector优点:排序利用下标,快速排序,做二分查找非常快 2.list的优点与缺点 list优点:插入 ...
- ca12a_c++顺序容器的操作5_访问容器中的数据元素
ca12a_c++顺序容器的操作5_访问容器中的数据元素访问元素:c.back()..显示最后一个数据c.front() ..显示第一个数据c[n],n就是下标,适合vector与dequec.at( ...
- cb06a_c++_顺序容器的定义
/*cb06a_c++_顺序容器的定义顺序容器:vector,数组,尾端操作数据,快速随机访问list 链表,快速插入数据deque数组,双端-首尾操作数据,方便两端的数据访问 顺序容器适配器:sta ...
- cb03a_c++_数据结构_顺序容器_STL_stack
/*cb03a_c++_数据结构_顺序容器_STL_stack堆栈:LIFO--Last In First Out后进先出,用于系统程序设计自适应容器(容器适配器),不是独立的容器,是一个适配器栈适配 ...
随机推荐
- 快服务常见TOP3审核雷区,再不过审就要崩溃啦!
仰天大笑出门去,审核提交很神气. 垂死病中惊坐起,突然驳回伤不起. 江州司马青衫湿,重新修改苦自知. 梦里花落知多少,回复马上就改好. 审批被驳回可能是最常见的令开发者头大的问题了,明明看起来&quo ...
- Order by 优化
写在前面 文章涉及到的 customer 表来源于案例库 sakila,下载地址为 http://downloads.mysql.com/docs/sakila-db.zip MySQL 排序方式 通 ...
- 华容道题解 NOIP2013 思路题!
第一次发紫题题解,居然在发布前太激动,把刚写好的还没发布的题解一个Ctrl+A和Backspace全删了.(所以这是二稿) luogu题目传送门 前置: 做本题一定要有的一些思想: 1.从简思想: 模 ...
- Servlet配置及生命周期
1.设置Ecilipse快捷 file new 2.创建Servlet程序 1). 创建一个 Servlet 接口的实现类. public class HelloServl ...
- Rocket - util - IDPool
https://mp.weixin.qq.com/s/Pe7FGKzfRufzzYDrl0fQ7g 介绍IDPool的实现. 1. 基本介绍 实现从ID池中分配和释放ID的功能. ...
- Java实现 LeetCode 731 我的日程安排表 II(二叉树)
731. 我的日程安排表 II 实现一个 MyCalendar 类来存放你的日程安排.如果要添加的时间内不会导致三重预订时,则可以存储这个新的日程安排. MyCalendar 有一个 book(int ...
- Java实现 LeetCode 641 设计循环双端队列(暴力)
641. 设计循环双端队列 设计实现双端队列. 你的实现需要支持以下操作: MyCircularDeque(k):构造函数,双端队列的大小为k. insertFront():将一个元素添加到双端队列头 ...
- Java实现 LeetCode 412 Fizz Buzz
412. Fizz Buzz 写一个程序,输出从 1 到 n 数字的字符串表示. 如果 n 是3的倍数,输出"Fizz": 如果 n 是5的倍数,输出"Buzz" ...
- Java实现 LeetCode 315 计算右侧小于当前元素的个数
315. 计算右侧小于当前元素的个数 给定一个整数数组 nums,按要求返回一个新数组 counts.数组 counts 有该性质: counts[i] 的值是 nums[i] 右侧小于 nums[i ...
- Java实现 蓝桥杯VIP 算法提高 聪明的美食家
算法提高 聪明的美食家 时间限制:1.0s 内存限制:256.0MB 问题描述 如果有人认为吃东西只需要嘴巴,那就错了. 都知道舌头有这么一个特性,"由简入奢易,由奢如简难"(据好 ...