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后进先出,用于系统程序设计自适应容器(容器适配器),不是独立的容器,是一个适配器栈适配 ...
随机推荐
- CSS基础选择器总结
基础选择器 作用 特点 使用情况 用法 标签选择器 可以选出所有相同的标签,比如p 不能差异化选择 较多 p {color:red;} 类选择器 可以选出1个或多个标签 可以根据需求选择 非常多 .n ...
- Java的四种权限修饰符
private:仅对本类可见 缺省(不需修饰符):对本包可见 protected:对本包及所有子类可见 public:对所有类可见 修饰符: * 权限修饰符:private,默认的,protected ...
- DCL单例为什么要加Volatile
拿一个对象创建赋值来说 class T{ int elem = 1; } T t = new T(); 上段代码转换成汇编码为: 0 new #2 <T> 3 dup 4 invokesp ...
- HashMap1.7和1.8,红黑树原理!
jdk 1.7 概述 HashMap基于Map接口实现,元素以键值对的方式存储,并允许使用null键和null值,但只能有一个键作为null,因为key不允许重复,另外HashMap不能保证放入元素的 ...
- SQL Server数据库附加失败错误:5123,拒绝访问
发生错误的图片如下 我们需要更改数据库文件的权限(mdf和ldf两个文件) 右键数据库文件,点击属性 选择安全,点击高级,把每一个角色的访问权限都变成完全控制 如图所示 然后确定确定确定保存等等, l ...
- Java实现 蓝桥杯 算法提高 欧拉函数(数学)
试题 算法提高 欧拉函数 问题描述 老师出了一道难题,小酱不会做,请你编个程序帮帮他,奖金一瓶酱油: 从1-n中有多少个数与n互质? |||||╭══╮ ┌═════┐ ╭╯让路║═║酱油专用车║ ╰ ...
- Java实现 LeetCode 605 种花问题(边界问题)
605. 种花问题 假设你有一个很长的花坛,一部分地块种植了花,另一部分却没有.可是,花卉不能种植在相邻的地块上,它们会争夺水源,两者都会死去. 给定一个花坛(表示为一个数组包含0和1,其中0表示没种 ...
- Java实现 LeetCode 401 二进制手表
401. 二进制手表 二进制手表顶部有 4 个 LED 代表小时(0-11),底部的 6 个 LED 代表分钟(0-59). 每个 LED 代表一个 0 或 1,最低位在右侧. 例如,上面的二进制手表 ...
- Java实现 LeetCode 90 子集 II(二)
90. 子集 II 给定一个可能包含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集). 说明:解集不能包含重复的子集. 示例: 输入: [1,2,2] 输出: [ [2], [1], [ ...
- Java实现 蓝桥杯 算法训练 景点游览
试题 算法训练 景点游览 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 小明来到一个景区游玩,但是他的时间有限,没办法逛遍所有的景点,所以他从网上下载了每个景点的评分,他希望能够使 ...