- 容器简介
- 定义及初始化
- 末尾插入元素
- 遍历 size 函数是可以动态增加的
- 通过下标操作增加改变vector内容不是安全的操作
- 仅能对已存在元素进行下标操作不存在会crash
- 将元素一个容器复制给另外一个容器类型必须匹配容器类型和元素类型必须相同
- 迭代器简介
- 定义
- begin和end操作
- 迭代器的自增和解引用操作
- 迭代器的算术操作
- const_iterator 只读
容器简介
定义及初始化
vector<int> vec(5,100);
vector<string> strVec(10,"hello");
末尾插入元素
vec.push_back(102);
strVec.push_back("what");
遍历 size() 函数是可以动态增加的
for(vector<int>::size_type ix=0;ix<vec.size(); ix++)
{
cout<<vec[ix]<<endl;
vec.push_back(ix+10);
cout<<"size is"<<vec.size()<<endl;
if(vec.size()==10)
{
break;
}
}
for(vector<string>::size_type jx=0;jx<strVec.size();jx++)
{
cout<<strVec[jx]<<endl;
}
通过下标操作增加改变vector内容,不是安全的操作
vector <int> vec2(10);
cout<<vec2[9]<<endl;
cout<<vec2[10]<<endl;
仅能对已存在元素进行下标操作,不存在会crash
vector<int> emptyVec;
//cout<<emptyVec[0]<<endl; error
将元素一个容器复制给另外一个容器,类型必须匹配,容器类型和元素类型必须相同
vector<int> vecCopy(vec);
for(vector<int>::size_type i=0;i<vecCopy.size();i++)
{
cout<<vecCopy[i]<<endl;
}
迭代器简介
所有标准库容器都支持迭代器,但只有少数的容器支持下标操作
定义
vector<int>::iterator iter;
begin和end操作
begin返回迭代器指向的第一个位置,end指向vector的末端元素的下一个
vector<string>::iterator iBegin=strVec.begin();vector<string>::iterator iEnd=strVec.end();
迭代器的自增和解引用操作
++iter指向第二个元素
*iter指向当前元素
cout<<*iBegin<<endl;
cout<<*(iEnd-1)<<endl;
for(;iBegin<iEnd;iBegin++)
{
cout<<*iBegin<<endl;
}
迭代器的算术操作
iter+n iter-n
iter1-iter2
string str("richard");
*(iBegin+3)=str;
cout<<*(iBegin+3)<<endl;
cout<<iEnd-iBegin<<endl;
vector<string>::iterator
mid=iBegin+strVec.size()/2;
cout<<*mid<<endl;
const_iterator 只读
时间: 2024-10-06 23:46:58