vectoc:标准库:集合或者动态数组,可以把若干对象放在里面。
vector它能把其他对象装进来,也被称为容器。
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main()
{
vector <int> vjihe;//表示这个里面保存的是int型数据
return 0;
}
:类模板,vector之后加一对<>.<>内部放上类型信息。(完整的类类型)
需要说明的是,vector里面的集合不能是引用,因为引用只是一个对象的别名,并不是一个对象。
vector <int *>vjihe;
//vector <int &>vjihe2;
定义和初始化vector对象
(简单初始化)
1、空vector(一般根据需要往里面加)
vector<string> mystr;//创建一个string类型的空的vector对象(容器)
mystr.push_back("abcd");//往容器里添加元素
mystr.push_back("def");
2、元素拷贝初始化方式
#include <iostream>
#include <string>
#include <vector>
#include <string>
using namespace std;
int main()
{
vector<string> mystr;//创建一个string类型的空的vector对象(容器)
mystr.push_back("abcd");//往容器里添加元素
mystr.push_back("def");
vector<string> mystr1(mystr);//拷贝的初始化方式
vector<string> mystr2(mystr);
return 0;
}
3、C++11标准中,用列表初始化方法给值,用{}括起来;
vector<string> mystr = {"aa","bb","cc"};
4、创建指定数量的元素,有元素数量概念的对象,一般会用圆括号
vector<int> ijihe(15,-200);//15个int型元素,初始值-200
vector<string> sjihe(5,"hello");
vector<int> ijihe(15);//15个int型元素,初始值为0
vector<string> sjihe(5);//初始值为""
5、多种初始化方式,()一般表示对象中元素数量的概念,{}一般表示元素内容,但不绝对。
vector<int> i1(10);//表示10个元素,每个元素值都是缺省的0;
vector<int> i2{ 10 };//表示一个元素值是10
vector<string> snor{"hello"};//一个元素,值是hello
vector<string> s22{ 10 };//10个元素,每个元素""。
vector<string> s23{ 10, "hello"};//10个元素,每个元素内容都是"hello"
vector<int> i3(10,1);//10个元素,每个元素值是1
vector<int> i4{10,1};//2个元素值是10和1
最常用的是先创建vectr为空,动态增加/减少。
vector常用方法
1、判断是否为空
vector<int> ivec;
if(ivec.empty())
{
cout<<"ivec为空"<<endl;
}
2、向vector末尾增加一个元素
vector<int> ivec;
ivec.push_back(1);
3、返回元素个数
vector<int> ivec;
cout<<ivec.size()<<endl;
4、移除所有元素,将容器清空
ivec.clear();
注意:
在for语句中(遍历一个容器等等类似操作中),千万不要改动vector容器的容量,增加/删除都不可以。
#include <iostream>
#include <string>
#include <vector>
#include <string>
using namespace std;
int main()
{
vector<int> value{1,2,3,4};
for (auto &temp : value)
{
cout << temp << " ";
}
cout << endl;
for (auto temp : value)
{
value.push_back(88);
cout << temp << " ";
}
cout << endl;
return 0;
}
结果
1 2 3 4
1 -572662307 -572662307 -572662307