STL入门
STL入门
STL的组成
六大组件
容器container
算法algorithm
迭代器iterator
仿函数function object
适配器adaptors
空间配制器allocator
产生一个vector容器,并打印
#include <iostream>
#include <vector>//容器
#include <algorithm>//算法 template<class T>//实现一个类模板,专门实现打印的功能
class myvectorprint
{
public:
void operator()(const T &t)//重载()
{
std::cout << t << std::endl;
}
}; void main()
{
std::vector<int> myvector; myvector.push_back();
myvector.push_back();
myvector.push_back();
myvector.push_back();
myvector.push_back(); myvectorprint<int>print;//对于打印进行实例化 for_each(myvector.begin(), myvector.end(), print);
}
产生一个array容器,并打印
#include <iostream>
#include <array>//容器
#include <algorithm>//算法 template<class T>//实现一个类模板,专门实现打印的功能
class myvectorprint
{
public:
void operator()(const T &t)//重载()
{
std::cout << t << std::endl;
}
}; void main()
{ std::array<int, >myarray = { ,,,,,,,,, }; myvectorprint<int>print;//对于打印进行实例化 //begin,end是迭代器
for_each(myarray.begin(), myarray.end(), print);//算法可以适用于任何容器,for_each是一个算法
}
容器container
容易的分类
1 序列式容器sequence containers
每个元素都有固定位置-取决于插入时机的地点,和元素值无关。
比如vector, deque, list
2 关联式容器associated containers
元素位置取决于特定的排序准则,和插入的顺序无关。
比如set, multiset, map, multimap
vector
vector在堆上
将元素置于一个动态数组中加以管理。
可以随机存取元素(用索引直接存取)
数据尾部添加或移出元素非常快速。但是在中部或头部安插元素比较费时。
STL入门的更多相关文章
- 20140725 快速排序时间复杂度 sTL入门
1.快速排序的时间复杂度(平均时间复杂度为) 数组本身就有序时,效果很差为O(n^2) 2.STl入门 (1) C++内联函数(inline)和C中宏(#define)区别 内联函数有类型检查,宏定义 ...
- STL入门大全(待编辑)
前言:这个暑假才接触STL,仿佛开启了新世界的大门(如同学完结构体排序一般的快乐\(≧▽≦)/),终于彻底领悟了大佬们说的“STL大法好”(虽然我真的很菜www现在只学会了一点点...)这篇blog主 ...
- 跟我学STL系列(1)——STL入门介绍
一.引言 最近这段时间一直都在自学C++,所以这里总结下自己这段时间的学习过程,通过这种方式来巩固自己学到的内容和以备后面复习所用,另外,希望这系列文章可以帮助到其他自学C++的朋友们. 由于本人之前 ...
- 【c++】标准模板库STL入门简介与常见用法
一.STL简介 1.什么是STL STL(Standard Template Library)标准模板库,主要由容器.迭代器.算法.函数对象.内存分配器和适配器六大部分组成.STL已是标准C++的一部 ...
- [技术] OIer的STL入门教程
注: 本文主要摘取STL在OI中的常用技巧应用, 所以可能会重点说明容器部分和算法部分, 且不会讨论所有支持的函数/操作并主要讨论 C++11 前支持的特性. 如果需要详细完整的介绍请自行查阅标准文档 ...
- [技术] OIer的C++标准库 : STL入门
注: 本文主要摘取STL在OI中的常用技巧应用, 所以可能会重点说明容器部分和算法部分, 且不会讨论所有支持的函数/操作并主要讨论 C++11 前支持的特性. 如果需要详细完整的介绍请自行查阅标准文档 ...
- STL 入门 (17 暑假集训第一周)
快速全排列的函数 头文件<algorithm> next_permutation(a,a+n) ---------------------------------------------- ...
- stl入门--reverse函数
#include<iostream> #include<algorithm> using namespace std; int main() { ch ...
- STL入门2
1:给出n个字符串,输出每个字符串是第几个出现的字符串?多组数据 2:对每组数据,第一行输入n表示接下来有n个字符串 1 <= n <= 100000接下来的n行,每行输入一个非空的且长度 ...
随机推荐
- 剑指offer-面试题16.反转链表
题目:定义一个函数,输入一个链表的头结点,反转该链表并输出反转后的头结点 链表结点定义如下: struct ListNode { int m_nKey; ListNode* m_pNext; } 其实 ...
- OpenWrt编译
OpenWrt编译简单过程1,OpenWrt编译环境准备sudo apt-get install gcc g++ binutils patch bzip2 flex bison make autoco ...
- XMPP通讯开发-仿QQ显示好友列表和用户组
在 XMPP通讯开发-服务器好友获取以及监听状态变化 中我们获取服务器上的用户好友信息,然后结合XMPP通讯开发-好友获取界面设计 我们将两个合并起来,首先获取用户组,然后把用户组用List ...
- grep, egrep, fgrep笔记
grep, egrep, fgrep grep: 根据模式搜索文本,并将符合模式的文本行显示出来.Pattern: 文本字符和正则表达式的元字符组合而成匹配条件 grep [options] PATT ...
- 逐渐深入地理解Ajax
Ajax的基本原理是:XMLHttpRequest对象(简称XHR对象),XHR为向服务器发送请求和解析服务器响应提供了流畅的接口.能够以异步方式从服务器获得更多信息.意味着用户不必刷新页面也能取得新 ...
- Grails重定向以及Render、Session的使用
近期发现网上grails因为用的人不算非常多,相关的资料也不是那么easy找到,随着学习的深入打算把我的学习心得定期分享出来.也给学习grails的同胞一个偷懒的机会,我的原则是以最简洁的方式学会Gr ...
- 更改yum网易 阿里云的yum源。
一,鉴于用国外的Yum源,速度比较慢,所以想到将国外的yum源,改为国内的Yum源,著名的有网易 阿里云源.如何更改呢? 二,更改yum源为网易的. 首先备份/etc/yum.repos.d/Cent ...
- a:hover span 隐藏/显示 问题
:hover是我们在CSS设计中最常运用的伪类之一,许多绚丽效果的实现离不开伪类:hover,比如我们常见的纯CSS菜单.相册效果等等. 或许用了这么久的伪类:hover,还有部分朋友还不完全了解ho ...
- SQL查询语句47题
select * from student select * from score --select * from grade select * from course select * from t ...
- Repository,UnitOfWork,DbContext(1)
一.前言 终于到EF了,实在不好意思,最近有点忙,本篇离上一篇发布已经一个多星期了,工作中的小迭代告一段落,终于有点时间来继续我们的架构设计了,在这里先对大家表示歉意. 其实这段时间我并不是把这个系列 ...