c++容器 算法 迭代

#include <iostream>
#include <vector>
using namespace std;

int main()
{
   // 创建一个向量存储 int
   vector<int> vec;
   int i;

   // 显示 vec 的原始大小
   cout << "vector size = " << vec.size() << endl;

   // 推入 5 个值到向量中
   for(i = 0; i < 5; i++){
      vec.push_back(i);
   }

   // 显示 vec 扩展后的大小
   cout << "extended vector size = " << vec.size() << endl;

   // 访问向量中的 5 个值
   for(i = 0; i < 5; i++){
      cout << "value of vec [" << i << "] = " << vec[i] << endl;
   }

   // 使用迭代器 iterator 访问值
   vector<int>::iterator v = vec.begin();
   while( v != vec.end()) {
      cout << "value of v = " << *v << endl;
      v++;
   }

   return 0;
}

原文地址:https://www.cnblogs.com/sea-stream/p/10977538.html

时间: 2024-08-03 16:20:27

c++容器 算法 迭代的相关文章

【足迹C++primer】35、特定容器算法

特定容器算法 lst.merge(lst2) 将来自lst2的元素并入到lst.这两个都必须是有序的. lst.merge(lst2, comp) 元素将从lst2删除,第一个版本使用<运算符,第二个版本使用给定的运算符 lst.remove(lst2)调用erase删除掉与给定值相等(==)或令一元谓词为真的每个元素 lst.remove_if(pred) lst.reverse() 反转lst中元素的顺序 lst.sort() 使用<或给定比较操作排序元素 lst.sort(comp) l

链表类型list和foreard_list的特定容器算法

时间:2014.06.07 地点:基地 --------------------------------------------------------------------------- 一.简述 由于list和forward_list分别提供了双向迭代器和前向迭代器,因此,凡要求随机访问迭代器的通用泛型算法是不能作用于链表的.另外,也正由于链表自身的性质,通用的算法作用于链表时或许又代价太高,因为它们往往使用交换输入序列中的元素,而链表无需交换元素,只需简单的改变元素间的链接即可,于是链表

STL的容器算法迭代器的设计理念

1) STL的容器通过类模板技术,实现数据类型和容器模型的分离. 2) STL的迭代器技术实现了遍历容器的统一方法:也为STL的算法提供了统一性. 3) STL的函数对象实现了自定义数据类型的算法运算 核心思想:其实函数对象本质就是回调函数,回调函数的思想,就是任务的编写者和任务的调用者有效解耦合,函数指针做函数参数. 4) 具体例子:transform算法的输入,通过迭代器first和last指向的元算作为输入:通过result作为输出:通过函数对象来做自定义数据类型的运算. 版权声明:本文为

五子棋AI算法-迭代加深

前面讲到了算杀,其实在算杀之前应该讲一下迭代加深.因为这些文章是我边做边写的一些笔记,所以顺序上可能不是那么严谨. 按照前面的所有算法实现之后(当然不包括算杀),会发现一个比较严重的问题,就是电脑在自己已经胜券在握的情况下(有双三之类的棋可以走),竟然会走一些冲四之类的棋来调戏玩家.这种走法出现的本质就是因为现在的AI只比较最终结果,并没有考虑到路径长短.所以很容易出现在6层搜索到一个双三,其实在4层的时候也有一个双三,因为分数一样,AI会随机选择一个走法.就导致了明明可以两步赢的棋,AI非要走

1_数据结构-容器-算法

容器 可以实现 数据结构 与 算法 的分离. eg: 1.容器装基础变量类型 vector<int>lunais; lunais.push_back(1); lunais.push_back(2); lunais.push_back(3); 可使用迭代器进行遍历: for(vector<int>::interator it = lunais.begin(); it != luanis.end(); ++it) { cout << *it << endl; }

容器适配器、STL算法简介

可以用某种顺序容器来实现 (让已有的顺序容器以栈/队列的方式工作) 1) stack: 头文件 <stack> 栈 -- 后进先出 2) queue: 头文件 <queue> 队列 -- 先进先出 3) priority_queue: 头文件 <queue> 优先级队列 -- 最高优先级元素总是第一个出列 都有3个成员函数: push: 添加一个元素; top: 返回栈顶部或队头元素的引用 pop: 删除一个元素 容器适配器上没有迭代器 STL中各种排序, 查找, 变序

java并发容器(Map、List、BlockingQueue)

转发: 大海巨浪 Java库本身就有多种线程安全的容器和同步工具,其中同步容器包括两部分:一个是Vector和Hashtable.另外还有JDK1.2中加入的同步包装类,这些类都是由Collections.synchronizedXXX工厂方法.同步容器都是线程安全的,但是对于复合操作,缺有些缺点: ① 迭代:在查觉到容器在迭代开始以后被修改,会抛出一个未检查异常ConcurrentModificationException,为了避免这个异常,需要在迭代期间,持有一个容器锁.但是锁的缺点也很明显

python之 可迭代 迭代器 生成器

0. 1.总结 (1) iterable 可迭代(对象) 能力属性 指一个对象能够一次返回它的一个成员,for i in a_list 而不需要通过下标完成迭代. 例子包括所有序列类型(list, str, tuple), 以及 dict, file, 还包括定义了 __iter__() 或 __getitem__() 方法的类实例. iterator 迭代器 具体实现 代表数据流的对象.重复调用迭代器的 next() (python3为 __next__()) 方法将依次返回流中的项.当没有更

java并发容器(Map、List、BlockingQueue)具体解释

Java库本身就有多种线程安全的容器和同步工具,当中同步容器包含两部分:一个是Vector和Hashtable.另外还有JDK1.2中增加的同步包装类.这些类都是由Collections.synchronizedXXX工厂方法. 同步容器都是线程安全的,可是对于复合操作.缺有些缺点: ① 迭代:在查觉到容器在迭代開始以后被改动,会抛出一个未检查异常ConcurrentModificationException,为了避免这个异常,须要在迭代期间,持有一个容器锁.可是锁的缺点也非常明显.就是对性能的