C++相对于C语言新增了一个很重要的东西就是STL(标准模板库),标准模板库包括了容器、算法和迭代器。这可以极大的简化在做算法题时的工作量。
借用菜鸟教程的图片:(C++ STL 教程 | 菜鸟教程 (runoob.com))
vector
vector即向量,可以用来存储变长数组,C语言中的变长数组需要自己动态分配内存还要自己释放内存,而且一开始分配了内存后,数组长度就不可以变化了。
vector相较之下跟更加灵活
命名(不带参数)
#include<iostream>
#include<vector>
using namespace std;
int main(){
vector <int> vec1;
vector <float> vec2;
cout<<vec1.size()<<endl;
}
命名(带参数)
有三种方式可以带参数命名
1. vector<int > (beg,end);
beg是第一个元素指针,end是最后一个元素的后一个指针(左闭右开)。所以,我们要传入几个元素就end对beg就有几个偏移量
2. vector <int> (n,value);
也可以是vector <int> (n);
此时value默认为0
3.vector <int> (vector)
#include<iostream>
#include<vector>
using namespace std;
int main(){
float s[6]={1.1,4.5,1.4,19.19,3.1415};
vector <float> vec2(s,s+5);
for(auto i=vec2.begin();i!=vec2.end();i++)
cout<<*i<<" ";
cout<<endl;
vector <int> vec1(3,10);
for(auto i=vec1.begin();i!=vec1.end();i++)
cout<<*i<<" ";
cout<<endl;
vector <int> vec3(vec1);
for(auto i=vec3.begin();i!=vec3.end();i++)
cout<<*i<<" ";
cout<<endl;
vector <int> vec4=vec1;
for(auto i=vec4.begin();i!=vec4.end();i++)
cout<<*i<<" ";
cout<<endl;
}