c/c++ 标准库 迭代器(iterator)

2021-07-03 11:05

阅读:597

标签:target   for循环   lse   例子   添加   tor   不可   size   font   

c/c++ 标准库 迭代器

begin和end运算符返回的具体类型由对象是否是常量决定,如果对象是常量,begin和end返回const_iterator;如果对象不是常量,返回iteraotor

1,但凡是使用了迭代器的循环体,都不要向迭代器所属的容器添加元素。

2,不能在范围for循环中向vector对象添加元素

标准库 迭代器(iterator)的小例子

test1~test8

#include 
#include 
#include 

using namespace std;

int main(){

  //test1                                                                       
  /*                                                                            
  string s("abc bdc");                                                          
  auto it = s.begin();                                                          
  while(it != s.end()){                                                         
    *it = toupper(*it);                                                         
    ++it;                                                                       
  }                                                                             
  cout :: iterator it;                                                    
  vector:: const_iterator it2;                                             
  vector v(5,1);                                                           
  it = v.begin();                                                               
  it2 = v.begin();                                                              
  vector const cv(5,2);                                                    
  //it = cv.begin();//it是可改变的vector::iterator,所以编译错误                
  for(auto s : v){                                                              
    cout  v(4,2);                                                           
  auto vit1 = v.cbegin();                                                       
  //*vit1 = 5;//不可以通过const类型的iterator改变原来的对象                     
  */

  //test6 string迭代器运算                                                      
  /*                                                                            
  string s("abcd");                                                             
  string s1("abc");                                                             
  vector v(5,3);                                                           
  auto it1 = s.begin();                                                         
  auto it2 = s.begin();                                                         
  if(it1 == it2){                                                               
    cout  it2){                                                                
    cout "  s(4,"abcd");                                                   
  vector s1(5,"abc");                                                   
  auto it1 = s.begin();                                                         
  auto it2 = s.begin();                                                         
  if(it1 == it2){                                                               
    cout  it2){                                                                
    cout " ::difference_type juli = it1 - it2;                             
  cout  v{"a","b","c","d","e"};
  string target("b");
  vector::size_type idx = 0;
  auto beg = v.begin();
  auto mid = v.begin() + v.size() / 2;
  auto end = v.end();
  while(mid != end && *mid != target){
    if(target 

c/c++ 标准库 迭代器(iterator)

标签:target   for循环   lse   例子   添加   tor   不可   size   font   

原文地址:https://www.cnblogs.com/xiaoshiwang/p/9623559.html


评论


亲,登录后才可以留言!