Linux C++ STL用法介绍(1)
STL = Standard Template Library,标准模板库,惠普实验室开发的一系列软件的统称。它是由Alexander Stepanov、Meng Lee和David R Musser在惠普实验室工作时所开发出来的。这可能是一个历史上最令人兴奋的工具的最无聊的术语。从根本上说,STL是一些“容器”的集合,这些“容器”有list,vector,set,map等,STL也是算法和其他一些组件的集合。这里的“容器”和算法的集合指的是世界上很多聪明人很多年的杰作。STL的目的是标准化组件,这样就不用重新开发,可以使用现成的组件。STL现在是C++的一部分,因此不用额外安装什么。在C++标准中,STL被组织为下面的13个头文件:<algorithm>、<deque>、<functional>、<iterator>、<vector>、<list>、<map>、<memory>、<numeric>、<queue>、<set>、<stack>和<utility>。
1) STL 基础
stl 算法知识
Using the STL generic reverse algorithm with an array
Use random_shuffle algorithms with array
#include <iostream>
#include <string>
#include <cassert>
#include <algorithm> // For reverse algorithm
using namespace std;
int main()
{
char array1[] = "abc";
int N1 = strlen(array1);
int a[100], b[100];
int i;
reverse(&array1[0], &array1[N1]);
for (i = 0; i < N1; i++)
cout << "array1[" << i << "] = " << array1[i] << endl;
for (i = 0; i < 100; ++i)
a[i] = i;
reverse_copy(&a[0], &a[100], &b[0]);
for (i = 0; i < 100; i++)
cout << "a: " << a[i] << " -- b: " << b[i] << endl;
random_shuffle(&a[0], &a[100]);
for (i = 0; i < 100; i++)
cout << " " << a[i] << " ";
return 0;
}
1.2 巧用 C++ 函数模板
Using function templates to get the max and min value in an array
#include <iostream>
using std::cout;
using std::endl;
template<class T> T max(const T* data, int size) {
T result = data[0];
for(int i = 1 ; i < size ; i++)
if(result < data[i])
result = data[i];
return result;
}
template<class T> T min(const T* data, int size) {
T result = data[0];
for(int i = 1 ; i < size ; i++)
if(result > data[i])
result = data[i];
return result;
}
int main() {
double data[] = {1.5, 4.6, 3.1, 1.1, 3.8, 2.1};
int numbers[] = {2, 22, 4, 6, 122, 12, 1, 45};
const int dataSize = sizeof data/sizeof data[0];
cout << "Minimum double is " << min(data, dataSize) << endl;
cout << "Maximum double is " << max(data, dataSize) << endl;
const int numbersSize = sizeof numbers/sizeof numbers[0];
cout << "Minimum integer is " << min(numbers, numbersSize) << endl;
cout << "Maximum integer is " << max(numbers, numbersSize) << endl;
return 0;
}
/*
Minimum double is 1.1
Maximum double is 4.6
Minimum integer is 1
Maximum integer is 122
*/
Use back_insert_iterator to insert element into a vector
转载于:https://www.cnblogs.com/shixinzhu/archive/2012/03/05/2380203.html
Linux C++ STL用法介绍(1)相关推荐
- c++ stl容器vector删除(erase),遍历等基本用法介绍及头文件
Vectors 包含着一系列连续存储的元素,其行为和数组类似.访问Vector中的任意元素或从末尾添加元素都可以在常量级时间复杂度内完成,而查找特定值的元素所处的位置或是在Vector中插入元素则是线 ...
- STL vector用法介绍
STL vector用法介绍 介绍 这篇文章的目的是为了介绍std::vector,如何恰当地使用它们的成员函数等操作.本文中还讨论了条件函数和函数指针在迭代算法中使用,如在remove_if()和f ...
- c语言strTrimed函数用法介绍,linux type命令用法_转
在脚本中type可用于检查命令或函数是否存在,存在返回0,表示成功:不存在返回正值,表示不成功. $ type foo >/dev/null 2>&1 || { echo > ...
- linux命令 删除alias,Linux下alias命令的用法介绍
本篇文章给大家带来的内容是关于Linux下alias命令的用法介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 最近在使用ssh连接远程机器敲了类似ssh -i ~/.ssh/13 ...
- C++ stl vector介绍
转自: STL vector用法介绍 介绍 这篇文章的目的是为了介绍std::vector,如何恰当地使用它们的成员函数等操作.本文中还讨论了条件函数和函数指针在迭代算法中使用,如在remove_if ...
- lsof 命令实用用法介绍
Table of Contents 前言 Linux 下有哪些文件 lsof 命令实用用法介绍 查看当前打开的所有文件 列出被删除但占用空间的文件 恢复打开但被删除的文件 查看当前文件被哪些进程打开 ...
- 用户管理 之 Linux 用户管理工具介绍
作者:北南南北 赞助: 来自:LinuxSir.Org 摘要: 本文主要介绍Linux系统的用户和用户组的查询.添加.修改及删除等管理工具: 目录索引 一.与用户管理相关的配置文件: 1./etc/p ...
- Linux中sysstat服务,Linux sysstat常用命令介绍
一.sysstat 软件安装 下载sysstat软件包,解压 tar zxvf *.tar.gz ./configure make make install 二.sar 命令介绍 sar -h 用法: ...
- Linux 用户管理工具介绍
目录索引 一.与用户管理相关的配置文件: 1./etc/passwd 和/etc/groups 2.超级权限控制 sudo 的配置文件/etc/sudoers : 3.添加用户规则文件 /etc/lo ...
最新文章
- 21天学通python pdf-21天学通Python PDF百度网盘资源下载
- Linux监控平台搭建( zabbix监控)
- SqlServer中将某列的值拼接成字符串
- Windows核心编程_组件透明
- python中os关于目录创建和文件移动操作
- 大学生 大创 软著申请指南(图文含模板)(专用于大创,这篇就够了!纯干货!)
- python数据分析之朴素贝叶斯实践
- 一图秒懂!“天使投资、VC、PE、A轮、B轮、C轮融资”的关系
- 计算机最最最底层的 工作原理是怎么运行的
- 软件设计——云原生12要素
- 2019, XII Samara Regional Intercollegiate Programming (G、H、J、K、L题解)
- Excel2JSON Excel转JSON Excel另存为JSON的技巧
- OpenCASCADE 读写STEP文件
- 宇视200W 相机一天所占存储空间是多少
- 虚拟化技术加速Android模拟器尝试
- python爬取软件内数据_各种数据爬取工具爬虫合集整理
- css Hack
- Numpy中flatten与ravel的区别
- 目标检测 | End-to-end Lane Detection through Differentiable Least-Squares Fitting
- 2023微软校招开始啦,快来找我内推吧
热门文章
- 问题 J: 输出是m的倍数或n的倍数、但不是m和n的公倍数的数
- Redis(一)面试总结精讲
- 微服务链路追踪_.NET Core微服务:分布式链路追踪系统分享
- 轮播 一张中间 两张在旁边_黄渤为《五哈》做海报,邓超陈赫都只有一张,唯独对鹿晗待遇不同...
- mysql服务连接标识_MySQL 连接 | 菜鸟教程
- docker安装mysql主从视频教程_docker安装mysql主从
- 2020年互联网人年终模板,是你在找的吗?
- 三届格莱美奖得主Ryan Tedder将在Origin上发行NFT
- Hashmasks将其艺术品与IPFS固定激励一起存储至Arweave中
- 地方旅游产业运行监测与应急指挥平台/旅游资源管理平台/旅游产业监测平台/旅游应急指挥平台/旅游资源统计/旅游线路数据/旅游产业可视化大屏管理系统/餐饮场所数据/游客流量监测/景区数据监测/视频监控