C++之STL
Posted ElevHe
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++之STL相关的知识,希望对你有一定的参考价值。
仿函数
C++中STL学习笔记——容器之vector
容器——vector
1.定义和初始化
vector<int> vec0;
这种定义只是定义vec0是一个vector,默认大小为0。
vector<int> vec1(10);//初始化vec1,初始化为10个0
这种定义是定义一个vec1,并初始化其长度为10,每个元素默认初始化为0。
vector<int> vec2(10,999);//初始化vec2,初始化为10个999
这种定义是定义一个vec2,并初始化其长度为10,每个元素初始化为999。
vector<int> vec2(vec1);//使用vec1初始化vec2,将vec2初始化为何vec1相同
vector<int> vec3(vec1.begin(),vec1.end());//使用vec1初始化vec3,将vec3初始化为何vec1相同
2.常见操作
vec1.push_back(100);//添加元素
该操作表示在vec1末尾添加一个元素100
while(!vec1.empty()){//empty 为空时返回值是1,不空返回值是0
cout<<vec1[vec1.size()-1]<<endl;
vec1.pop_back();//vec1.pop_back删除末尾元素
}
empty()函数表示当前vector是否为空,为空返回1,不空返回0;pop_back()弹出(删除)末尾元素。
vec1.insert(vec1.end(),5,3);//在末尾插入5个3
insert()函数有三个参量。
cout<<(vec1==vec2)?true:false; //判断是否相等==、!=、>=、<=...
判断两个vector是否相等。
3.元素获取(遍历方法)
//遍历获取元素
//1.迭代器法
vector<int>::iterator iter = vec2.begin();
for(;iter!=vec2.end();iter++){
cout<<*iter<<endl;
}
//2.下标法
for(int i=0;i<vec2.size();i++){
cout<<vec2[i]<<endl;
}
4.以上代码的可执行文件
using namespace std;
//就是一个动态数组
int main()
{
//1.定义和初始化
vector<int> vec0;
vector<int> vec1(10,999);//初始化vec1,初始化为10个999
for(int i=0;i<vec1.size();i++){
vec1[i]=i+1;
}
vector<int> vec2(vec1);//使用vec1初始化vec2,将vec2初始化为何vec1相同
vector<int> vec3(vec1.begin(),vec1.end());//使用vec1初始化vec3,将vec3初始化为何vec1相同
//2.对vector操作
vec1.push_back(100);//添加元素
while(!vec1.empty()){//empty 为空时返回值是1,不空返回值是0
cout<<vec1[vec1.size()-1]<<endl;
vec1.pop_back();//vec1.pop_back删除末尾元素
}
cout<<endl;
vec1.insert(vec1.end(),5,3);//在末尾插入5个3
for(int i=0;i<vec1.size();i++){
cout<<vec1[i]<<endl;
}
cout<<endl;
for(int i=0;i<vec1.size();i++){
vec1[i]=i+1;
}
//vec1.erase(vec1.begin()+1,vec1.end()-1);//删除之间的元素,其他元素前移 两个元素都是迭代器
cout<<(vec1==vec2)?true:false; //判断是否相等==、!=、>=、<=...
cout<<endl;
//遍历获取元素
vector<int>::iterator iter = vec2.begin();//获取迭代器首地址->迭代器就是地址
for(;iter!=vec2.end();iter++){
cout<<*iter<<endl;
}
//当然了,肯定可以用下标
for(int i=0;i<vec2.size();i++){
cout<<vec2[i]<<endl;
}
//getchar();
//getchar();
return 0;
}
祝快乐学习,快乐生活!
C-J1586886
你“在看”我吗?
以上是关于C++之STL的主要内容,如果未能解决你的问题,请参考以下文章