为什么要使用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>

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

  1. STL vector用法介绍

    STL vector用法介绍 介绍 这篇文章的目的是为了介绍std::vector,如何恰当地使用它们的成员函数等操作.本文中还讨论了条件函数和函数指针在迭代算法中使用,如在remove_if()和f ...

  2. Sql注入基础原理介绍

    说明:文章所有内容均截选自实验楼教程[Sql注入基础原理介绍]~ 实验原理 Sql 注入攻击是通过将恶意的 Sql 查询或添加语句插入到应用的输入参数中,再在后台 Sql 服务器上解析执行进行的攻击, ...

  3. SVN CentOS7 下配置svn的安装及基础配置介绍

    CentOS7 下配置svn的安装及基础配置介绍 by:授客 QQ:1033553122 目录 一. 二. 三. 四. 五. 六. 七. 一.      实践环境 CentOS 7操作系统(CentO ...

  4. android开发学习---linux下开发环境的搭建&& android基础知识介绍

    一.配置所需开发环境 1.基本环境配置 JDK 5或以上版本(仅有JRE不够) (http://www.oracle.com/technetwork/java/javase/downloads/ind ...

  5. Nginx基础知识介绍

    Nginx基础知识介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Nginx概述 Nginx是免费的.开源的.高性能的HTTP和正向/反向代理服务器.邮件代理服务器.以及T ...

  6. TCP_Wrappers基础知识介绍

    1. TCP_Wrappers基础知识介绍 TCP_Wrappers是在 Solaris, HP_UX以及 Linux中广泛流行的免费软件.它被设计为一个介于外来服务请求和系统服务回应的中间处理软件. ...

  7. 【miscellaneous】 GStreamer应用开发手册学习笔记之基础概念介绍

    第3章. 基础概念介绍 本章将介绍GStreamer的基本概念. 理解这些概念对于你后续的学习非常重要,因为后续深入的讲解我们都假定你已经完全理解了这些概念. 3.1. 元件(Elements) 元件 ...

  8. Swift Playgrounds for mac基础知识介绍

    Swift Playgrounds是一款适用于iPad和Mac的革命性应用程序,它使Swift学习变得互动而有趣.它不需要编码知识,因此非常适合刚开始的学生.使用Swift解决难题,以掌握基本知识.S ...

  9. CentOS 7基础命令介绍

    01 CentOS基础命令介绍 重所周知,Linux是一个主要通过命令行来进行管理的操作系统,即通过键盘输入指令来管理系统的相关操作,包括但不限于编辑文件.启动/停止服务等.这和初学者曾经使用的Win ...

随机推荐

  1. 【转】visualSFM生成的bundle.rd.out文件的格式

    1.bundle.out 文件包含了一些经过估算得到的场景和相机几何信息.文件的格式如下: //---------------------------------------------------- ...

  2. matlab数组和矩阵

    数组创建 要创建每行包含四个元素的数组,请使用逗号 (,) 或空格分隔各元素. a = [1 2 3 4] a = 1×4 1 2 3 4 这种数组为行向量. 要创建包含多行的矩阵,请使用分号分隔各行 ...

  3. xdoj 1241--余神的rp机(区间dp)

    xdoj  1241---余神的rp机 核

  4. xdoj-1117(记忆化搜索+组合数学)

    因为我是从上到下,所以就不叫动态规划而叫记忆化搜索吧 (不过运行时间只有3ms....应该是很不错的吧) 排版怎么那么难看...编辑的时候不是这样子的啊?! 思想 : 大眼一看应该是一道很裸的状压dp ...

  5. pip3 install scrap报错

    mac系统 pip3 install scrapy 失败 No local packages or working download links found for incremental>=1 ...

  6. Hadoop权威指南

    初识Hadoop Hadoop与其它系统比较 数据库的劣势:磁盘寻址性能低发展慢 数据库索引? MapReduce适合一次写入,多次读取的应用,关系型数据库适合持续更新的数据集 Hadoop在处理数据 ...

  7. Redis Cluster 4.0高可用集群安装、在线迁移操作记录

    之前介绍了redis cluster的结构及高可用集群部署过程,今天这里简单说下redis集群的迁移.由于之前的redis cluster集群环境部署的服务器性能有限,需要迁移到高配置的服务器上.考虑 ...

  8. this、new,容易混淆的地方

    this.new,容易混淆的地方 情况1 关系 情况2 new Foo() 等价于,推荐的写法是new Foo() new Foo new Foo() 不一样 Foo(), Foo()这种情况下,构造 ...

  9. redux 知识点

    redux原理:store中维护了一个state,我们dispatch一个action,接下来reducer根据这个action更新state. react-redux提供两个关键模块:Provide ...

  10. 什么情况下,英文单词中的k发音变g,t发音变d,p发音变b

    当k,t,p在s发音的后面,且在重读音节中,k,t,p就要发相对应的浊辅音g,d,b.