c++STL容器:
【使用以下容器都需加上相应的头文件】
vector:
(vector所有例子中的vi为 vector vi)
1.变长数组,长度可以根据需要而自动改变的。
2.定义要求:需要到头文件加#include
3.eg:**
**需要定义类型 ,**并且类型与定义名之间必须要有空格
4.访问:****(1)通过下标访问
(2)迭代访问器:
定义为:vector
类似于指针
【begin()函数作用便是取数组vi的首地址,end()函数作用为取尾元素下一位的地址】eg:
常用函数
push_back()
push_back() 【push_back(x)就是在vector后面加一个x元素】
pop_back()
pop_back()【pop_back()就是删除末尾元素】
size()
【size()用来知道vector元素个数】eg:
clear()
【其是用来清空vector中所有元素】eg:
vi.clear()即可生效
insert()
【插入元素到数组任意位置】eg:
erase()
1.删除单个元素
eg:
vi.erease(vi.begin() + 3); //删除第三个元素
2.删除一个区间的元素
eg:
vi.(vi.begin() + 1,vi.begin() + 3) //删除的元素为vi[1],vi[2]
set:
(定义一个set st;)
1.set为一个自动有序额且不含重复元素的容器
2.set的定义:
set name;(与vector一样,也需要到类型与定义名之间加入空格)
sets name[arraySize];
3.set内元素访问:
只能通过迭代访问:
set::iterator it; //it为定义名,可以更换
for(set::iterator it = st.begin();it != st.end();it++){
cout<<*it<<endl;
}
常用函数
insert()
【insert(x)可将x插入到set容器中,您去会自动梯增排序和取重】
eg:
st.insert(2);
st.insert(3);
find()
【find(x) x为set中的迭代器】
eg:
set::iterator it = st.find(x);
erase()
【两种用法:删除单个元素;删除一个区间的所以元素】
eg:
1.单个删除
(1) st.erase(it) // it为所要删除元素的迭代器,一般结合find()函数使用如st.erase(st.find(x)) ;
(2)st.erase(x) // x为所要删除的值如st.erase(200);
2.区间删除
st.erase(first,last)first为所需删除区间的起始迭代器,last为所要删除区间的末尾迭代器的下一个地址
eg:
set::iterator it = st.find(x)
st.erase.(it,st.end());
size()
同理上面,用来确定容器的元素个数的
eg:
st.size();
clear()
【用来清除所有元素】
eg:st.clear();
string
1.定义:string str; eg: string str = “abda”;
2.string 通过下标内容访问 eg:
for(int i = 0;i < str.length();i++){
cout<<str[i];
}
(1)输入字符串:
cin>>str;
(2)输出字符串:
cout<<str;
3.通过迭代器访问 eg:
for(string::iterator it = str.begin();it != str().end();it++){
cout<<*it<<endl;
}
常用函数
operator+=
eg:
string str1 = “abd”,str2 = “abc”,str3;
str3 = str1 + str2;</