STL 1–迭代器std::begin()和std::end()使用
迭代器是一个行为类似于指针的模板类对象。只需要迭代器iter指向一个有效对象,就可以通过使用*iter解引用的方式来获取一个对象的引用。通常会使用一对迭代器来定义一段元素,可以是任意支持迭代器对象的元素,一段元素是一个通过起始迭代器指向第一个元素,通过结束迭代器指向最后一个元素的后一个位置的元素序列。一般使用std::begin()和std::end()来获取容器的迭代器。
#include <numeric>
#include <iostream>
#include <iterator>
using namespace std;
int main(){
    double data[] {2.5,4.5,6.5,5.5,8.5};
    cout<<"The array contains: \n";
    for(auto iter = std::begin(data) ;iter != std::end(data) ; ++iter){
        cout << *iter << " ";
    }
    double total = std::accumulate(std::begin(data),std::end(data),0.0);
    cout <<"\n"<< total << endl;
    ;
}
std::accumulate()表示计算std::begin()到std::end()之间的元素的总和,并且起始值设置为0.
STL 1–迭代器std::begin()和std::end()使用的更多相关文章
- STL的std::find和std::find_if
		
std::find是用来查找容器元素算法,但是它只能查找容器元素为基本数据类型,如果想要查找类类型,应该使用find_if. 小例子: #include "stdafx.h" #i ...
 - STL基础--迭代器和算法
		
1 迭代器 Iterators 5种迭代器类型 随机访问迭代器: vector, deque, array // 允许的操作 vector<int> itr; itr = itr + 5; ...
 - C++ 标准模板库(STL)——迭代器(iterators)的用法及理解
		
C++ STL中迭代器(iterators)用于遍历对象集合的元素.由于容器大小随着插入删除等操作动态改变,无法像静态数组那样获取数组长度然后遍历容器里的所有元素:这时就需要迭代器,每次从容器内第一个 ...
 - 从deque到std::stack,std::queue,再到iOS 中NSArray(CFArray)
		
从deque到std::stack,std::queue,再到iOS 中NSArray(CFArray) deque deque双端队列,分段连续空间数据结构,由中控的map(与其说map,不如说是数 ...
 - 带你深入理解STL之迭代器和Traits技法
		
在开始讲迭代器之前,先列举几个例子,由浅入深的来理解一下为什么要设计迭代器. //对于int类的求和函数 int sum(int *a , int n) { int sum = 0 ; for (in ...
 - STL之迭代器(iterator)
		
1 头文件 所有容器有含有其各自的迭代器型别(iterator types),所以当你使用一般的容器迭代器时,并不需要含入专门的头文件.不过有几种特别的迭代器,例如逆向迭代器,被定义于<iter ...
 - STL : 反向迭代器(Reverse Iterator)
		
1. 定义反向迭代器(Reverse Iterator)是一种反向遍历容器的迭代器.也就是,从最后一个元素到第一个元素遍历容器.反向迭代器将自增(和自减)的含义反过来了:对于反向迭代器,++运算将访问 ...
 - C++11:基于std::queue和std::mutex构建一个线程安全的队列
		
C++11:基于std::queue和std::mutex构建一个线程安全的队列 C++中的模板std::queue提供了一个队列容器,但这个容器并不是线程安全的,如果在多线程环境下使用队列,它是不能 ...
 - iOS出现 Undefined symbols for architecture armv7 std::basic_string<char, std::char_traits<char>
		
Undefined symbols for architecture i386: “_OBJC_CLASS_$_XXX”, referenced from: objc-class-ref in XXX ...
 
随机推荐
- Killing Monsters(hdu4970)
			
Killing Monsters Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)T ...
 - 畅通工程(hdu1863)并查集
			
畅通工程 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
 - 关于SDN
			
传统网络: 一:它们是纯分布式控制 二:控制面和转发面在同一个设备中,紧密耦合 三:管理员无法直接操控转发行为 四:网络协议对转发行为的影响是有固定模式的 而SDN的特性: 一:控制面与转发面分离 二 ...
 - 集合框架四(Map)
			
Map的主要实现类: --HashMap:Map的主要实现类(掌握) --LinkedHashMap:使用链表维护添加进Map中的顺序,遍历时按添加时的顺序遍历 --TreeMap:按照添加进Map中 ...
 - 从零开始学习html(十二)CSS布局模型——下
			
五.什么是层模型? 什么是层布局模型?层布局模型就像是图像软件PhotoShop中非常流行的图层编辑功能一样, 每个图层能够精确定位操作,但在网页设计领域,由于网页大小的活动性,层布局没能受到热捧. ...
 - php api 接口输出json 数据
			
页面调用接口,简单写个api 试试 如下 <?php $arr = array( array('url'=>'https://baidu.com'), array('map'=>'h ...
 - Kubernetes+Docker的云平台在CentOS7系统上的安装
			
Kubernetes+Docker的云平台在CentOS7系统上的安装 1.运行VirtualBox5. 2.安装CentOS7系统. 注意:选择Basic Server类型 安装过程略. 3.修改计 ...
 - ionic左滑删除
			
<html ng-app="ionicApp"> <head> <meta charset="utf-8"> <met ...
 - Charles抓取https请求
			
最近公司将Windows产品的http请求,替换成https请求了,当https请求超过5次失败,就自动切换回http请求.测试时使用Charles抓包测试. 一.http抓包 http抓包比较简单, ...
 - 2018-9 Java.lang.StackOverflowError
			
问题: Java.lang.StackOverflowError at com.**Logger.**.**.StringFilter.isValueNull(StringFilter.java:81 ...