C++ STL标准程序库初探
来源:互联网 发布:剑侠情缘3网游mac 编辑:程序博客网 时间:2024/05/22 08:14
C++ STL标准程序库初探
首先解决一个vs2010中按crtl+f5后,CMD闪烁后消失突然消失的问题:
在你的项目条目(project)上右击鼠标,在弹出菜单上选择最后一项“property/属性”,在左边的一栏里找到“配置属性->链接器->系统”,点击“系统”项后,在右边的栏的“子系统(subSystem)”将刻项的值配置为"Console(/SUBSYSTEM:CONSOLE)"。
经过这样的配置后,再按 Ctrl+F5,程序运行完毕后就会停留在控制台界面,提示你“按任意键继续”。 就这样,问题完美解决。
标准模板库(STL):主要包含3个部分,STL容器,STL 迭代器和STL 算法
(1)STL 容器
顺序容器
std::vector、std::deque、std::list
关联容器
std::set、std::multiset、std::map、std::multimap
(2)STL 迭代器
前向迭代器、双向迭代器、随机访问迭代器
(3)STL 算法
std::find、std::find_if、std::reverse、std::transform
#include <iostream>//标准库#include <vector> //STL容器#include <algorithm> //STL算法using namespace std;int main(){vector<int> v; //v是一个变量, v的类型是vector<int>v.push_back(1);v.push_back(2);v.push_back(34);v.push_back(9);v.push_back(19); v.push_back(29); v.push_back(39);v.push_back(49);cout << "向量v里面的数据为: " << endl;vector<int>::iterator i = v.begin();//迭代器初始化的时候指向的是v中的第一个数据元素//由end操作返回的迭代器指向vector的“末端元素的下一个”。通常称为超出末端迭代器(off-the-end iterator),表明它指向了一个不存在的元素。while(i != v.end())//stl中的遍历算法{cout << *i << endl;//迭代器实质上就是一个指针++i;//迭代器在自加,也就是说迭代器在不断的向后移动}//STL中的查找算法vector<int>::iterator iElement = find(v.begin(),v.end(),49);if(iElement != v.end()){int nPosition = distance(v.begin(),iElement);cout << "Value: " << *iElement << endl;cout << "位置: " << nPosition << endl;}return 0;}
运行结果:
begin和end操作
每种容器都定义了一对命名为begin和end的函数,用于返回迭代器。如果容器中有元素的话,由begin返回的迭代器指向第一个元素:
vector<int>::iterator iter = v.begin();
上述语句把iter初始化为由名为begin的vector操作返回的值。假设vector不空,初始化后,iter即指该元素为v[0]。
由end操作返回的迭代器指向vector的“末端元素的下一个”。通常称为超出末端迭代器(off-the-end iterator),表明它指向了一个不存在的元素。如果vector为空,begin返回的迭代器与end返回的迭代器相同。
由end操作返回的迭代器并不指向vector中任何实际的元素,相反,它只是起一个哨兵(sentinel)的作用,表示我们已处理完vector中所有元素。
参考资料:
C++ STL标准程序库
http://blog.sina.com.cn/s/blog_6f3ce2370100qvhh.html
- C++ STL标准程序库初探
- C++:标准程序库-STL迭代器Iterator
- C++标准程序库STL
- C++STL标准程序库开发指南(1)
- 《STL标准程序库》笔记1
- 《STL标准程序库》笔记2
- 《STL标准程序库》笔记3
- 《STL标准程序库》笔记4
- 《STL标准程序库》笔记5
- 《C++标准程序库STL》笔记
- C标准程序库头文件
- C++标准程序库与STL关系
- 《STL标准程序库》笔记6-vector
- 《STL标准程序库》笔记7-deque
- 《STL标准程序库》笔记8-List
- 《C++标准程序库》——STL迭代器
- 《C++标准程序库》——STL迭代器
- 《C++标准程序库》学习笔记(一)初识STL
- 计算机网络note
- 黑马程序员-----Java基础-----多态
- 连接MySql的时候报1130的错误解决办法
- 最小生成树(prim算法与kruskal算法)(模板)
- 生成者与消费者
- C++ STL标准程序库初探
- 计算机组成原理之 I/O总结---来自北大陆俊林老师的视频内容(3)
- FreeCMS怎么动态访问模板?
- [高考]18个文言虚词之"而"
- UNIX网络编程卷一:第十六章 非阻塞I/O
- 我们如何学好java
- Oracle数据库SQLPLUS中几个常用set语句
- leetcode_Decode Ways
- 程序员爱情表白专用html5动画网页的代码