STL基础--基本介绍

为什么要使用C++标准库

/*
 * 为什么使用C++标准库:
 * 1. 代码重用,不用重新造轮子
 * 2. 效率(快速,且使用更少的资源). 现代C++编译器经常对C++标准库的代码有优化
 * 3. 准确,更少的bug
 * 4. 简洁,可读性好;减少控制流
 * 5. 标准化,保证可用
 * 6. 是编写库的一个很好的榜样
 * 7. 对数据结构和算法有更好的认识
 */
/*
 * STL: Standard Template Library
 *   -- 容器和算法,迭代器是容器和算法之间的桥梁,使容器和算法更容易扩展
 */

// 一个简单的例子
using namespace std;

vector<int> vec;
vec.push_back(4);
vec.push_back(1);
vec.push_back(8);  // vec: {4, 1, 8}

vector<int>::iterator itr1 = vec.begin();  // half-open:  [begin, end)
vector<int>::iterator itr2 = vec.end();

for (vector<int>::iterator itr = itr1; itr!=itr2; ++itr)
   cout << *itr << " ";  // Print out:  4 1 8

sort(itr1, itr2);  // vec: {1, 4, 8}

STL Headers

#include <vector>
#include <deque>
#include <list>
#include <set>   // set and multiset
#include <map>   // map and multimap
#include <unordered_set>  // unordered set/multiset
#include <unordered_map>  // unordered map/multimap
#include <iterator>
#include <algorithm>
#include <numeric>    // some numeric algorithm
#include <functional>

原文地址:https://www.cnblogs.com/logchen/p/10200125.html

时间: 2024-10-11 12:00:28

STL基础--基本介绍的相关文章

STL vector的介绍(1)

尝试下翻译STL里面的一些容易和算法.四级过了,六级刚考.顺便练练自己的英语水平,翻译的不好的地方请大神多多指教哈,方便我改正. 原来均来自:http://www.cplusplus.com/ template < class T, class Alloc = allocator<T> > class vector; // generic template Vector Vectors are sequence containers representing arrays that

足彩基础知识入门(4)赛事数据库与预测平台基础概念介绍(一)

在足球赛事数据库以及统计分析预测平台中,有很多概念,如果不搞懂,很难进行下一步的工作.所以为了配合团队人员的学习和任务进行,特意编写这篇文章.如果有其他问题和不懂的,请留言,将根据情况进行更新. 本文原文地址:足彩基础知识入门(4)赛事数据库与预测平台基础概念介绍(一) 1.指数1/2/3.... 我在 足彩基础知识入门(3)足彩赔率的本质 一文中介绍了赔率的概念,那么指数的概念和赔率以及结果是相关的.我们举个例子: 如上图的比赛,前面是竞彩非让球的赔率:1.74-3.25-4.15,也就是说

Saltstack 基础详细介绍

1.saltstack 基础详细介绍  Saltstack使用Python开发,是一个非常简单易用和轻量级的管理工具.由Master和Minion构成,通过ZeroMQ进行通信    Saltstack的master端监听4505与4506端口,4505为salt的消息发布系统,4506为salt客户端与服务端通信的端口:salt客户端程序不监听端口,客户端启动后,会主动连接master端注册,然后一直保持该TCP连接,master通过这条TCP连接对客户端控制,如果连接断开,master对客户

【STL基础】deque

deque (double-ended queue) 构造函数: //default: deque<T> d; //空的vector //fill: deque<T> d(n); //n个元素的deque,元素默认初始化 deque<T> d(n, value); //n个元素值为value的deque //range: deque<T> d(first, last); //两个迭代器之间的元素构成的deque deque<T> d(arr, a

【STL基础】list

list 构造函数: //default: list<T> l; //空的list //fill: list<T> l(n); //n个元素, 元素默认初始化 list<T> l(n, value); //n个元素值为value //range: list<T> l(first, last); //两个迭代器之间的元素构成 list<T> l(arr, arr + sizeof(arr) / sizeof(T)); //由内置数组构造 //cop

view基础知识介绍(二)

view基础知识介绍 View的滑动 View的滑动可以通过三种方式来实现: 通过view本身提供的scrollTo和scrollBy方法 通过动画施加平移效果来实现 通过改变view的LayoutParams使得view重新布局来实现 scrollTo/scrollBy ①. 通过查看view的源码 我们可以发现 scrollBy方法其实也是调用了scrollTo方法来实现的 scrollTo方法是基于所传递参数的绝对位置滑动 而scrollBy是根据所传递参数基于当前未知的滑动 通过源码可知

自动化运维系列之Ansible的YAML、基础元素介绍

自动化运维系列之Ansible的YAML.基础元素介绍 YAML简介 YAML是一种用来表达资料序列的格式.YAML是YAML Ain't Markup Lanaguage的缩写,即YAML不是XML. 特点 1.具有很好的可读性,易于实现: 2.表达能力强,扩展性好: 3.和脚本语言的交互性好: 4.有一个一致的信息模型: 5.可以基于流来处理. YAML语法 YAML的语法和其他语言类似,也可以表达散列表.标量等数据结构. YAML结构通过空格来展示:序列里的项用"-"来代表:Ma

NLP汉语自然语言处理入门基础知识介绍

NLP汉语自然语言处理入门基础知识介绍 自然语言处理定义: 自然语言处理是一门计算机科学.人工智能以及语言学的交叉学科.虽然语言只是人工智能的一部分(人工智能还包括计算机视觉等),但它是非常独特的一部分.这个星球上有许多生物拥有超过人类的视觉系统,但只有人类才拥有这么高级的语言. 自然语言处理的目标是让计算机处理或说"理解"自然语言,以完成有意义的任务,比如订机票购物或QA等.完全理解和表达语言是极其困难的,完美的语言理解等效于实现人工智能. 自然语言处理涉及的几个层次: 作为输入一共

TCP_Wrappers基础知识介绍

1. TCP_Wrappers基础知识介绍 TCP_Wrappers是在 Solaris, HP_UX以及 Linux中广泛流行的免费软件.它被设计为一个介于外来服务请求和系统服务回应的中间处理软件.最常见的用法是与inetd一起使用.当系统的Inetd接收到一个外来服务请求的时候,并不是直接调用,而是调用TCP_Wrappers(可执行文件tcpd),TCP_Wrappers根据这个所请求的服务和针对这个服务所定制的存取控制规则来判断对方是否有使用这个服务的权限,如果有,TCP_Wrapper