c++ vector::iterator

本文详细介绍了vector迭代器的基本使用方法,包括如何通过iterator遍历元素、删除特定位置的元素等,并展示了OpenCV中Mat类型的迭代器用法及其特有的属性pos。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

vector 的iterator 迭代器是一个指针
vector.begin() 是指向第一个元素的指针
*iter 就是相应的元素

注意 vector.erase(这里面必须是一个iterator)
比如:

 // erase the 6th element
  myvector.erase (myvector.begin()+5);

  // erase the first 3 elements:
  myvector.erase (myvector.begin(),myvector.begin()+3);

erase之后,返回下一个iterator

    vector<int> mylist = {0,1,2,3,4};
    vector<int>::iterator iter = mylist.begin();
    int a = *iter;  //iter->  mylist[0] 0
    ++iter;
    int b = *iter; //iter->  mylist[1]  1
    iter++;
    int c= *iter; //iter->  mylist[2]  2
    iter = mylist.erase(iter); // erase(2) mylist={0,1,3,4}  iter->mylist[2] 3
    int d = *iter;  // d=3

opencv中的Mat也可以用iterator,不同的是iter还有一个属性pos

    Mat mask;
    mask.create(100, 100, CV_8UC1);
    mask = Scalar::all(255);
    Mat_<uchar>::iterator iter = mask.begin<uchar>();
    iter++;
    iter++;
    iter++;  
    cout << (int)(*iter) << endl;   // 255
    cout << iter.pos() << endl;     //[3,0]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值