C++9.3.6 容器 访问元素

简介

========================================================================================================

一、访问容器内的元素—-前提容器非空

  • 如果容器非空,那么容器类型的front和back成员将返回容器的第一个或最后一个元素的引用
if(!ilist.empty()){
   list<int>::reference val=*ilist.begin();
   list<int>::reference val2=ilist.front();
   //val和val1指向同一个元素,下面两个也一样
   list<int>::reference last=*--ilist.end();
   list<int>::reference last2=ilist.back();//9.3.1节reference是元素的左值类型,是value_type&的同义词


//这段程序使用了两种不同的方法获取ilist中的第一个和最后一个元素的引用。
///直接的方法是调用front和back函数。
//间接的方法是通过对begin操作返回的迭代器进行解引用。或对end操作返回的迭代器的前一个元素位置进行解引用。
//要注意,在调用front和back函数之前,或者对begin或end返回的迭代器进行解引用运算之前,必须保证ilist容器非空。
}

C++9.3.6 容器 访问元素_第1张图片

注意:在使用下标运算时,必须保证在指定下标位置上的元素确实存在,使用front和back操作时,容器不能为空。

  • 用下标运算的另一个可选方案时at成员函数。这个函数的行为和下标运算相似,但是如果下标无效,at函数会抛出out_of_range异常
vector<string> svec;//空的一个容器
cout<<svec[0];//错误!!!
cout<<svec.at[0];//下标无效,会抛出异常

你可能感兴趣的:(C++9.3.6 容器 访问元素)