vector是C++标准模板库中的一种容器在广义上可以理解为增强的数组
vector的优点在于:能够根据条件的需要自动的调整自身容量的大小,并且提供了一些方法对自身操作
头文件 #include <vector>
初始化
①vector <string> vec;//初始化大小为自动调整,类型为string的向量
②vector <int> vec(10);//初始化大小为10(vec.size()=10),类型为int的向量
③vector <int> vec(10,0);//初始化大小为10(vec.size()=10),初值为0的int类型的向量
④vector <int> veb(vec);//用向量vec初始化veb
⑤vector <int> veb(vec.begin(),vec.end()+3);//用向量vec从0开始的前三项vec[0]、vec[1]、vec[2]初始化向量veb;
除此之外还可以用数组来初始化向量
int array[] ={0,1,2,3,4,5,6,7,8,9};
vector <int> vec(array,array+5);//将数组array的前5个元素作为向量a的初值;
因为里面参数array是 int * 类型的,所以代表的是地址,所以还有一种表示方法
vector <int> vec(&array[1],&array[4]);//用数组从array[1]到array[4]范围内的元素初始化向量vector;
一些基本操作:
1>. a.size() //获取向量中的元素个数
2>. a.empty() //判断向量是否为空
3>. a.clear() //清空向量中的元素
4>. 复制 a = b ; //将b向量复制到a向量中
5>. 比较 保持 ==、!=、>、>=、<、<= 的惯有含义 ;
如: a == b ; //a向量与b向量比较, 相等则返回1
6>. 插入 - insert
①、 a.insert(a.begin(), 1000); //将1000插入到向量a的起始位置前
②、 a.insert(a.begin(), 3, 1000) ; //将1000分别插入到向量元素位置的0-2处(共3个元素)
③、 vector<int> a(5, 1) ;
vector<int> b(10) ;
b.insert(b.begin(), a.begin(), a.end()) ; //将a.begin(), a.end()之间的全部元素插入到b.begin()前
7>. 删除 - erase
①、 b.erase(b.begin()) ; //将起始位置的元素删除
②、 b.erase(b.begin(), b.begin()+3) ; //将(b.begin(), b.begin()+3)之间的元素删除
交换 - swap
8>. b.swap(a) ; //a向量与b向量进行交换
#include <iostream>
#include <string>
#include <vector>
using namespace std ;
int main()
{
int i,n,j ;
string str[] = {"abstract","assert","boolean","break","byte","case","catch",
"char","class","continue","default","do","double","else","extends","false","final","finally",
"float","for","if","implements","import","instanceof","int","interface","long","native","new",
"null","package","private","protected","public","return","short","static","super","switch",
"synchronized","this","throw","throws","transient","true","try","void","volatile","while"} ;
vector<string> vec[26] ;//以26字母为分块 因为都是小写字母 如果 有大写 则为48
for( i = 0 ; i < 49 ; i++)//吧题目所给的字母分类 分成a,b,c,d。。等等的一类
{
vec[str[i].at(0)-'a'].push_back(str[i]) ;
}
/*for(i = 0 ; i < vec[0].size() ;i++)
{
cout<<vec[0][i]<<endl ;
}*/
scanf("%d",&n) ;
for(i = 0 ; i < n;i++)
{
string ss ;
cin>>ss ;
for(j = 0 ; j < vec[ss[0]-'a'].size() ;j++)
{
if(ss == vec[ss[0]-'a'][j])
{
cout<<"in"<<endl ;
break ;
}
}
if(j == vec[ss[0]-'a'].size())
cout<<"out"<<endl ;
}
return 0 ;
}