目录
int list[5] = {1, 3, 6, 9, 12};
vector<int> vList;
copy(list,list+5,vList);
当使用上述方式进行赋值时,由于vList没有分配空间,而出错。
解决方法使用遍历数组,并调用push_back方法将元素保存到vList中。
另外一种比较好的方式是通过插入迭代器完成。
三种插入迭代器:back_inserter, front_inserter,inserter
示例代码:
#include <iostream>
#include <list>
#include <algorithm>
#include <string>
#include <numeric>
#include <iterator>
#include <vector>
#include <functional>
using namespace std;
int main() {
int lists[8] = {1,2,3,4,5,6,7,8};
vector<int> vList1;
vector<int> vList2;
ostream_iterator<int> screenOut(cout, " ");
copy(lists,lists+8,back_inserter(vList1));
cout << "vList1:" << endl;
copy(vList1.begin(),vList1.end(),screenOut);
cout << endl;
copy(vList1.begin(),vList1.end(),inserter(vList2,vList2.begin()));
cout << "vList2:" << endl;
copy(vList2.begin(),vList2.end(),screenOut);
cout << endl;
list<int> listTemp;
copy(vList2.begin(),vList2.end(),front_inserter(listTemp));
cout << "listTemp:" << endl;
copy(listTemp.begin(),listTemp.end(),screenOut);
cout << endl;
return 0;
}
运行结果:
vList1:
1 2 3 4 5 6 7 8
vList2:
1 2 3 4 5 6 7 8
listTemp:
8 7 6 5 4 3 2 1
分享到:
相关推荐
STL是高效的C++程序库,是大量类模板和函数模板的聚集,主要的组成部分包括容器、迭代器、算法、函数等。其中容器是存放对象的集合,使用类模板方式; 选代器是容器与算法的粘合剂,是所谓的泛型指针, 使用类模板方式...
本实验主要练习容器set、multiset、map、multimap的使用方法,插入迭代器、反向迭代器的用法,以及四种非变异算法的基本用法。 实验器材: VScode 实验内容: 一.回顾以上四种容器相关的例题(不作为实验报告内容)...
实例CH203,使用STL风格迭代器。 (a) list.insert(list.end(),j):使用QList<T>::insert()函数插入10个整数值。此函数有两个参数:第一个参数是QList<T>::iterator类型,表示在该列表项之前插入一个新的列表项(使用...
AVL树的建立,插入和删除结点,并拥有自己的迭代器,可以当做STL用
26.1 向前插入迭代器 428 26.2 向后插入迭代器 429 26.3 插入迭代器 431 26.4 反向迭代器 432 26.5 反向双向迭代器 434 26.6 原始存储迭代器 435 26.7 本章小结 437 附录 STL版权说明 438
3.1 迭代器设计思维 - stl关键所在 079 3.2 迭代器是一种 smart pointer 080 3.3 迭代器相应型别(associated types) 084 3.4 traits 编程技法 - stl源码门钥 085 partial specialzation(偏特化)的意义 086 ...
26.1 向前插入迭代器 428 26.2 向后插入迭代器 429 26.3 插入迭代器 431 26.4 反向迭代器 432 26.5 反向双向迭代器 434 26.6 原始存储迭代器 435 26.7 本章小结 437 附录 STL版权说明 438
3.1 迭代器设计思维 - STL关键所在 079 3.2 迭代器是一种 smart pointer 080 3.3 迭代器相应型别(associated types) 084 3.4 Traits 编程技法 - STL源码门钥 085 Partial Specialzation(偏特化)的意义 086 ...
fastdb 插入器 迭代器 STL式访问 dbdatabase dbcursor dbquery
26.1 向前插入迭代器 428 26.2 向后插入迭代器 429 26.3 插入迭代器 431 26.4 反向迭代器 432 26.5 反向双向迭代器 434 26.6 原始存储迭代器 435 26.7 本章小结 437 附录 STL版权说明 438
对STL中的list进一步学习,编程过程中对结构体的操作很多。 全部代码如下: /* ... iterator insert(lit,元素)在迭代器指针lit前插入元素,返回插入元素的迭代器指针; void insert(lit,n,元素)
09插入排序 10快速排序 11归并排序 12顺序栈 13顺序队列 14链表的基本概率 15链表 16链表的迭代器 17循环链表 18双项链表 19链式栈 20链式队列 21STL_list类 22基数排序 23属 24二叉树 25二叉树找数 26红黑树 27...
}3. 插入迭代器适配器|函数|作用||:-||insert_iterator<Container> inserter (Container& x, Itera
双向链表List模板类(模拟STL容器中的list),提供插入删除,清空,获取链表长度,判断链表是否为空等操作,内置了迭代器类型
本文以List容器为例子,介绍了STL的基本内容,从容器到迭代器,再到普通函数,而且例子丰富,通俗易懂。不失为STL的入门文章,新手不容错过!0 前言1 定义一个list2 使用list的成员函数push_back和push_front插入一个...
本版本与网上其他资源不同之处在于,此版本可进行编辑,搜索,已进行内容识别扫描。可全选,可编辑,可剪切文字。 部分目录如下: 目录 第一篇预备知识 第1 章C++ 编程技术.........................................
09插入排序 10快速排序 11归并排序 12顺序栈 13顺序队列 14链表的基本概率 15链表 16链表的迭代器 17循环链表 18双项链表 19链式栈 20链式队列 21STL_list类 22基数排序 23属 24二叉树 25二叉树找数 26红黑树 27...
09插入排序 10快速排序 11归并排序 12顺序栈 13顺序队列 14链表的基本概率 15链表 16链表的迭代器 17循环链表 18双项链表 19链式栈 20链式队列 21STL_list类 22基数排序 23属 24二叉树 25二叉树找数 26红黑树 27...
④一旦内从重分配,和原vector相关的指针,引用,迭代器都失效。内存重分配耗时很长 二、头文件、using声明 头文件:#include using声明:using std::vector; 三、初始化 vector v1; ==>v1是一个空的vector ...
set是STL中一种标准关联容器,其键值就是实值,实值就是键值,不可以有重复,所以我们不能通过set的迭代器来改变set的元素的值。它底层使用平衡的搜索树——红黑树实现,插入删除操作时仅仅需要指针操作节点即可完成...