C++STL概述
来源:互联网 发布:js 数组中查找值 编辑:程序博客网 时间:2024/06/05 10:44
C++STL概述
STL提供三种类型的组件: 容器、迭代器和算法。它们都支持泛型程序设计标准。
容器主要有两类:顺序容器和关联容器(vector、list、deque和string等)是一系列元素的有序集合。关联容器(set、multiset、map和multimap)包含查找元素的键值。
迭代器的作用是遍历容器。
STL算法库包含四类算法:排序算法、不可变序算法、变序算法和数值算法。
下面主要介绍vector、string、set和map几个容器
vector向量容器
vector向量容器不但能像数组一样对元素进行随机访问,还能在尾部插入元素,是一种简单、高效的容器,完全可以代替数组。
值得注意的是,vector具有内存自动管理的功能,对于元素的插入和删除,可动态调整所占的内存空间。
使用vector向量容器,需要头文件包含声明“include<vector>”。
创建vector对象
vector<int>
vector<int>
vector<double>
访问vector元素
可以采用下标方式随意访问它的某个元素,也可以用下标方式对元素重新赋值,类似于数组的访问方式.
常用的方法是用迭代器配合循环语句来对vector对象进行遍历访问,迭代器类型一定要与它要遍历的vector对象的元素一致.
push_back() //对vector容器在尾部追加新元素.
insert()
erase()
clear()
size()
empty()
排列算法
需要定义头文件”#include<algorithm>”
reverse()
sort()
string类提供了添加、删除。替换、查找和比较等丰富的方法。
使用string容器,需要头文件包含声明”#include<string>”
创建string对象
string
给string对象赋值
直接给字符串赋值
str = “Hello,C++STL”;
把字符指针赋值给一个字符串对象
str = pstr;
从string对象尾部添加字符或字符串
str = str + ‘a’;
str = str + “abc”;
访问string对象的元素
一般使用下标方式随机访问string对象的元素,下标是从0开始
string容器常用方法
append()
insert()
erase()
要清空一个字符串,直接给它赋空字符串即可
length()
empty()
replace()
find()
compare()
reverse()
converToString()
converFromString()
需要包含”#include<set>”
一个集合(set)是一个容器,它其中所包含的元素的值是唯一的。
而multiset中可以出现副本键,同一值可以出现多次。
创建set集合对象
set<int> s;
set集合的方法
begin()
clear()
count()
empty()
end()
equal_range() //返回集合中与给定值相等的上下限的两个迭代器
erase()
find()
get_allocator() //返回集合的分配器
insert()
lower_bound()
key_comp()
max_size()
rbegin()
rend()
size()
swap()
upper_bound()
value_comp()
map映照容器
需包含头文件”#include<map>”
map映照容器的元素数据是有一个键值和一个映照数据组成的,键值与映照数据之间具有一一映照的关系
创建map对象
map<string,float>
m[“Jack”] = 98.5;
begin()
clear()
count()
empty()
end()
equal_range() //返回特殊条目的迭代器对
erase()
find()
get_allocator() //返回map的配置器
insert()
key_comp()
lower_bound()
max_size()
rbegin()
rend()
size()
swap()
upper_bound() //返回键值>给定元素的第一个位置
value_comp()
- C ++ STL概述
- C++STL概述
- C++STL:map概述
- STL(C++)详细概述
- STL概述
- STL概述
- STL概述
- STL概述
- STL概述
- STL概述
- STL概述
- STL概述
- STL 概述
- STL概述
- STL 概述
- STL概述
- STL概述
- STL概述
- SVN服务器搭建和使用(五)
- FPGA牛人的经验分享
- 多线程服务器的常用编程模型
- 关于erf(误差函数)思考
- Candy Sharing Game
- C++STL概述
- Struts 2框架介绍
- [Poj2318]TOYS
- 设计模式总结-行为模式
- 今天上街捡了一捆芹菜
- html 页面内容滚动显示 marquee
- KMP算法详解(图示+代码)
- Android关于布局的经典面试题及解答(一)
- 大数据排序处理