C++ vector

	vector<int> v1 {1,2,3};
	vector<int> v2(v1); //v2 copy v1
	vector<int> v3(10,2); //10个元素均为2
	vector<int> v4(10); //10个元素均默认初始化为0
    vector<string> svec(10); //10个元素,默认初始化为空string对象
    vector<int> v5={2,3,4};
	vector<string> v6={"Come","ON"};
	vector<int> vec; //默认初始化,vec中不含任何元素
	for(int i=0;i!=10;i++)
		vec.push_back(i);//依次把整数值放到vec的尾端
	for(auto i:vec)   //对于v中的每个元素
		cout<<i<<" ";

 vector支持的其他操作

 v.empty();

v.size();

注意:不能用下标形式添加元素。vector对象(string对象)的下标运算符可用于访问已经存在的元素,而不能用于添加元素。

 

所有的标准容器都可以用迭代器。但是其中只有少数几种才同时支持下标运算符。类似于指针类型,迭代器也提供了对对象的简介访问。就迭代器而言,其对象是容器中的元素或者string对象中的字符。使用迭代器可以访问某个元素,迭代器也能从一个元素移动到另外一个元素。

 

有迭代器同时拥有返回迭代器的成员。比如,这些类型拥有名为begin和end的成员,begin成员负责返回指向第一个元素的迭代器。如果容器为空,begin和end返回的是同一个迭代器,都是尾迭代器。

 

迭代器运算符

使用“==”和“!=”来比较两个合法的迭代器是否相等。使用“++”递增运算符来从一个元素移动到下一个元素。

string s("some string");
if(s.begin()!=s.end())
{
   auto it=s.begin();
   *it=toupper(*it);
}


for(auto it=s.begin();it!=s.end()&&!isspace(*it);it++)
  *it=toupper(*it);

迭代器类型

 拥有迭代器的标准库类型使用iterator和const_iterator来表示迭代器的类型:

vector<int>::iterator it; //it能读写vector<int>的元素
string::iterator it2; // it2能读写string对象中的字符

vector<int>::const_iterator it3;
string::const_iterator it4;

const_iterator和常量指针差不多,能读取但是不能修改它所指向的元素值。如果对象只需要读操作而无须写操作的话最好使用常量类型,为了便于得到const_iterator类型的返回值,C++11新标准引入两个新函数,分别为cbegin和cend。

   

auto it3=v.cbegin(); //it3的类型是vector<int>::const_iterator

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值