STL入门

STL的组成

六大组件

容器container

算法algorithm

迭代器iterator

仿函数function object

适配器adaptors

空间配制器allocator

产生一个vector容器,并打印

 1 #include <iostream>
 2 #include <vector>//容器
 3 #include <algorithm>//算法
 4
 5 template<class T>//实现一个类模板,专门实现打印的功能
 6 class myvectorprint
 7 {
 8 public:
 9     void operator()(const T &t)//重载()
10     {
11         std::cout << t << std::endl;
12     }
13 };
14
15 void main()
16 {
17     std::vector<int> myvector;
18
19     myvector.push_back(11);
20     myvector.push_back(21);
21     myvector.push_back(31);
22     myvector.push_back(81);
23     myvector.push_back(51);
24
25     myvectorprint<int>print;//对于打印进行实例化
26
27     for_each(myvector.begin(), myvector.end(), print);
28 }

产生一个array容器,并打印

 1 #include <iostream>
 2 #include <array>//容器
 3 #include <algorithm>//算法
 4
 5 template<class T>//实现一个类模板,专门实现打印的功能
 6 class myvectorprint
 7 {
 8 public:
 9     void operator()(const T &t)//重载()
10     {
11         std::cout << t << std::endl;
12     }
13 };
14
15 void main()
16 {    std::array<int, 10>myarray = { 10,9,8,7,6,5,4,3,2,1 };
17
18     myvectorprint<int>print;//对于打印进行实例化
19
20     //begin,end是迭代器
21     for_each(myarray.begin(), myarray.end(), print);//算法可以适用于任何容器,for_each是一个算法
22 }

容器container

容易的分类

1 序列式容器sequence containers

每个元素都有固定位置-取决于插入时机的地点,和元素值无关。

比如vector, deque, list

2 关联式容器associated containers

元素位置取决于特定的排序准则,和插入的顺序无关。

比如set, multiset, map, multimap

时间: 2024-10-03 21:28:49

STL入门的相关文章

【c++】标准模板库STL入门简介与常见用法

一.STL简介 1.什么是STL STL(Standard Template Library)标准模板库,主要由容器.迭代器.算法.函数对象.内存分配器和适配器六大部分组成.STL已是标准C++的一部分,使用STL开发系统可以提高开发效率. 2.容器(Containers) 容器类是可以包含其它对象的模板类,如向量类(vector).链表类(list).双向队列类(deque).集合类(set)和映射类(map)等.其中vector.list.deque为序列式容器,set.map为关联式容器.

[技术] OIer的STL入门教程

注: 本文主要摘取STL在OI中的常用技巧应用, 所以可能会重点说明容器部分和算法部分, 且不会讨论所有支持的函数/操作并主要讨论 C++11 前支持的特性. 如果需要详细完整的介绍请自行查阅标准文档. 原始资料源于各大C++参考信息网站/C++标准文档和Wikipedia. 1.概述 首先, 什么是STL? STL, 即标准模板库, 全称Standard Template Library , 主要包含4个组件, 即算法, 函数, 容器, 迭代器. 这里的函数似乎主要指函数式编程(FP)中的函数

C++手稿:STL入门

STL (Standard Template Library) 提供了一些常用的数据结构和算法的模板,1998年加入C++标准. STL中有三个基本概念: 容器:容纳各种数据类型的数据结构,是一系列的类模板. 迭代器:迭代器用来迭代地访问容器中的元素. 算法:用来操作容器中的元素,是一系列的函数模板. STL 容器 STL中的容器定义在std命名空间下,需要引入头文件 <vector>, <set>, <map>, <deque>, <list>

[c++]STL入门

1.动态创建指针,忘记释放将导致内存泄漏 即使用int* p = new int[size]; 必须使用delete释放内存, 如果没有释放,那么将无法访问自由存储空间的结构,因为所有指向该内存的指针都无效,这一部分内存相当于死内存,导致程序可用内存越来越少,从而程序崩溃. 2.extern关键字解析 http://www.cnblogs.com/yc_sunniwell/archive/2010/07/14/1777431.html   //博客 http://baike.baidu.com/

stl入门--reverse函数

#include<iostream> #include<algorithm>          using namespace std; int main() {     char a[]="0123456789";     int len=strlen(a);     reverse(&a[0],&a[6]);        //a[6]没参加reverse     for(int i=0;i<10;i++)         cout&l

STL入门学习中碰到的一些函数

2020.02.10 fill #include<algorithm> vector<int> v{ 1, 2, 3, 3 }; fill(v.begin(), v.end(), 4);//正向迭代器 cout << v.size() << endl; for (auto x : v) cout << x << " "; fill_n #include<algorithm> vector<int&

【C/C++学院】0828-STL入门与简介/STL容器概念/容器迭代器仿函数算法STL概念例子/栈队列双端队列优先队列/数据结构堆的概念/红黑树容器

STL入门与简介 #include<iostream> #include <vector>//容器 #include<array>//数组 #include <algorithm>//算法 using namespace std; //实现一个类模板,专门实现打印的功能 template<class T> //类模板实现了方法 class myvectorprint { public: void operator ()(const T &

《算法竞赛入门经典(第二版)》pdf

下载地址:网盘下载 内容简介  · · · · · · <算法竞赛入门经典(第2版)>是一本算法竞赛的入门与提高教材,把C/C++语言.算法和解题有机地结合在一起,淡化理论,注重学习方法和实践技巧.全书内容分为12 章,包括程序设计入门.循环结构程序设计.数组和字符串.函数和递归.C++与STL入门.数据结构基础.暴力求解法.高效算法设计.动态规划初步.数学概念与方法.图论模型与算法.高级专题等内容,覆盖了算法竞赛入门和提高所需的主要知识点,并含有大量例题和习题.书中的代码规范.简洁.易懂,不

UVA 10474

题意:给你一组数,再给几个数问是否在一组数中. 题很简单:STL入门. 没用到STL. #include<iostream> #include<cstdio> #include<algorithm> using namespace std; int a[10005]; int main() { int ncase = 1; //freopen("in.txt","r",stdin); int n,m; while(scanf(&q