设为首页 加入收藏

TOP

C++STL笔记(一)
2017-10-13 10:21:46 】 浏览:6962
Tags:STL 笔记

C++STL

本文主要内容如下:

1.vector

1.1vector的定义

1.2vector容器内元素的访问

1.3vector常用函数

2.set

2.1 set的定义

2.2set容器内元素的访问

2.3set常用函数

3.string

3.1 string 的定义

3.2string容器内元素的访问

3.3string 常用函数

4.map

4.1 map的定义

4.2 map容器内元素的访问

4.3 map常用函数

5. queue

5.1 queue的定义

5.2 queue 容器内元素的访问

5.3 queue 常用函数

5.4 queue常见用途

6.priority_queue

6.1 priority_queue的定义

6.2 priority_queue 容器内元素的访问

6.3 priority_queue 常用函数

6.4 priority_queue内元素优先级的设置

7. stack

7.1stack的定义

7.2stack容器内元素的访问

8. pair

8.1 pair的定义

8.2 pair中元素的访问

8.3 pair常用函数

8.4 pair常见用途

9. algorithm头文件

 

1.vector

向量,长度可变的数组

头文件

#include<vector>

1.1vector的定义

vector<typename> name;

例如:

vector<int> name;

如果typename是vector

vector<vector<int>>name;

相当于二维数组

vector<typename> ArrayName[arraySize];

例如:

vector<int> vi[100];

 

1.2vector容器内元素的访问

1)通过下标访问

vi[index];

2)通过迭代器访问

vector<typename>::iterator  it;

例如:

vector<int>::iterator  it;

有上下文环境时,可以直接用 auto it=vi.begin();

例如:

for(auto it=vi.begin();it!=vi.end();it++)

printf(“%d”,*it);

注:vi.begin()和vi.end()左闭右开。

 

1.3vector常用函数

1)push_back()

在末尾添加一个元素。

vi.push_back(i);

2)pop_back()

删除一个尾元素。

  vi.pop_back();

3)size()

返回vector元素的个数,注意是unsigned类型。

vi.size();

4)clear()

清空vector中所有的元素。

vi.clear();

5)insert()

insert(it,x)在迭代器it前插入一个元素x。

vi: 1 2 3 4 5

vi.insert(vi.begin()+2,-1);

vi:1 2 -1 3 4 5

6)erase()

1.删除单个元素

vi:5 6 7 8 9

vi.erase(vi.begin()+3)

vi:5 6 7 9

2.删除一个区间内的所有元素

erase[first,last); 左闭右开

vi:5 6 7 8 9

vi.erase(vi.begin()+1,vi.begin+4)

vi:5 9

2.set

集合,一个内部自动有序且不含重复元素的容器

头文件

#include<set>

2.1 set的定义

set<typename> name;

例如:

set<int> name;

set数组

set<typename>ArrayName[arraySize];

例如:

set<int> a[100];

2.2set容器内 元素的访问

set只能用迭代器访问

set<typename>::iterator it;

例如:

set<int>::iterator it;

set<int> st;

for(auto it=st.begin();it!=st.end();it++)

print(“%d”,*it);

 

st:2 3 5

set元素自动递增排序,且自动去除重复元素。

 

注意:不能用it<st.end();

除了vector和string容器外不能用*(it+i)

 

2.3set常用函数

1)insert()

insert(x)将x插入set容器中,并自动递增排序和去重。

st.insert(x)

2)find()

find(value)返回set中对应值为value的迭代器。

set<int>::iterator it = st.find(2);

3)erase()

1.删除单个元素

st.erase(it); //it 为迭代器

st.erase(find(100));

st.erase(value),value 为所要删除元素的值。

st.erase(100);

2.删除区间内所有元素

erase[first,last); 左闭右开

st.erase(first,last);

st.erase(it,st.end());

4)size()

返回set内元素的个数,unsigned类型

5)clear()

清空set内所有的元素

 

3.string

字符串数组

3.1 string 的定义

string str=”abcd”;

3.2string容器内元素的访问

1)通过下标访问

str[index];

输出str

cout<<str;

printf(“%s”,str.c_str());

2)通过迭代器访问

string迭代器不需要参数

string::iterator it;

for(it=str.begin();it!=str.end();it++)

printf(“%c”,*it);

 

3.3string 常用函数

1)operator+=

str1+=str2;

2)compare operator

可直接使用 == ,!=,<=,<,>,>=比较大小,比较规则是字典序

3)length()/size()

返回字符串长度,两者基本相同。

4)insert()

1.insert(pos.string);

pos号位置插入字符串string

string str1=”abcxyz”;

string str2=”opq”;

str1.insert(3,str2);

str1:abcopqxyz

2.insert(it,it2,it3); //it为原字符串待插入位置,it2,it3位待插入字符串首尾迭代器。[it2,it3) 左开右闭

string str1=”abcxyz”;

string str2=”opq”;

str1.insert(str1.begin()+3,str2.begin(),str2.end())

str1:abcopqxyz

5)erase

首页 上一页 1 2 3 4 下一页 尾页 1/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Dom4J生成xml和包含CDATA问题 下一篇读书笔记 effective c++ Item 14 ..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目