STL学习之路
来源:互联网 发布:数据库应用系统的构成 编辑:程序博客网 时间:2024/06/09 22:46
STL泛型程序设计,C++的一大特色,可编写不依赖具体数据类型的程序。
知识点:
1. STL四大组件(容器、迭代器(泛化的指针)、算法、函数对象(泛化的函数))
2. 基本容器:顺序容器(Vector、deque、list)关联容器(set、multiset、map、multimap)
3. 迭代器:输入迭代器(读)、输出迭代器(写)、前向迭代器(读和写)、双向迭代器(读写和反向移动)、随机访问迭代器(类似指针)
4. 迭代器辅助函数模板:advance(使迭代器前进n个元素)、distance(计算first和last的距离)
5. 容器(s1)的基本功能:
s1.begin() //指向容器第一个元素
s1.end() //指向最后一个元素的后一个位置
s1.clear() //清空容器
s1.empty() //判断容器是否为空,返回bool类型
s1.size() //返回元素个数
s1.swap(s2) //交换s1、s2的内容
s1.capacity() //返回容量
6.迭代器失效问题
# if 0//入门了解STL四大组件(容器、迭代器(泛化的指针)、算法、函数对象(泛化的函数))# include <iostream># include <algorithm> //STL算法头文件# include <vector> //Vector容器头文件# include <iterator> //迭代器头文件# include <functional> //函数对象头文件using namespace std;int main(){ const N = 5; vector<int> s(N);//容器Vector for(int i = 0; i<N; i++) { cin>>s[i]; } //算法、迭代器、函数对象 transform(s.begin(), s.end(), ostream_iterator<int>(cout, " "),negate<int>()); cout<<endl; return 0;}# endif
//求数的平方值# if 0# include <iostream># include <iterator># include <algorithm># include <functional>using namespace std;double squre(double x){ return x * x;}int main(){ //调用istream_iterator类模板默认的构造函数判断输入流结束位置 transform(istream_iterator<double>(cin), istream_iterator<double>(),ostream_iterator<int>(cout, "\t"), squre); return 0;}# endif
0 0
- STL学习之路
- STL学习之路
- c++学习之路----------STL
- STL学习之路之仿函数
- c++学习之路--------------stl(2)
- STL学习之路(2)
- STL学习之路(一) deque
- STL学习之路三(vector)
- STL学习之(一)
- STL学习之(二)
- STL之学习笔记
- 学习STL之二
- STL学习之list
- STL之list学习
- STL学习之auto_ptr
- STL学习之vector
- STL学习之list
- STL学习之slist
- 【BZOJ1856】[Scoi2010]字符串【组合数】【神题】
- UVA1378A Funny Stone Game
- 用jQuery实现轮播banner
- html 传值之url 传值
- 2012年第三届蓝桥杯C/C++程序设计本科B组决赛 星期几(结果填空)
- STL学习之路
- Python闲谈(一)mgrid慢放
- 2016百度之星热身赛 1002
- jQuery 事件 - mousedown() 方法
- 《安卓笔记》——Parcelable接口
- 164. Maximum Gap【H】【80】【桶排序】【VIP】
- 位运算
- Can not find the tag library descriptor for "http://Java.sun.com/jsp/jstl/core"
- 2012年第三届蓝桥杯C/C++程序设计本科B组决赛 数据压缩(代码填空)