当前位置: 首页 > news >正文

徐州在线制作网站商贸公司寮步网站建设

徐州在线制作网站,商贸公司寮步网站建设,苍南县住房和城乡规划建设局网站,网站建设背景和目标迭代器介绍 迭代器(iterator):容器类型内置的“指针” - 使用迭代器可以访问某个元素,迭代器也能从一个元素移动到另一个元素。 - 有迭代器的类型都拥有 begin 和 end 成员- begin:返回指向第一个元素(或字…

迭代器介绍

迭代器(iterator):容器类型内置的“指针”
- 使用迭代器可以访问某个元素,迭代器也能从一个元素移动到另一个元素。
- 有迭代器的类型都拥有 begin 和 end 成员- begin:返回指向第一个元素(或字符)的迭代器- end:尾后迭代器,即尾元素的下一个位置(一个本不存在的元素) 

使用迭代器

auto b = v.begin(),e = v.end(); // b和e的类型相同

如果容器为空,则begin和end返回的是同一个迭代器,都是尾后迭代器

在这里插入图片描述
举个例子,下面利用迭代器实现

string s = "some string";
if(s.begin() != s.end()) { //确保s非空auto it = s.begin();  //it表示s的第一个字符*it = toupper(*it);   //将当前字符改成大写形式
}  //Some string

使用迭代器遍历容器

for(auto it = s.begin(); it != s.end() && !isspace(*it); ++it) {*it = toupper(*it);
}  // SOME string
  • 迭代器类型
vector<int>::iterator it;     //it能读写元素
vector<int>::const_iterator it2;//it2只能读元素,不可以写元素

如果vector或者string对象是一个常量,只能使用const_iterator;如果不是常量,则既能使用iterator也能使用const_iterator

  • 正序迭代
begin();end()   //iterator
cbegin();cend()  //const_iterator
  • 逆序迭代
rbegin();rend()  //reverse_iterator
int main() {vector<int> vec{0,1,2,3,4,5,6,7,8,9};vector<int>::reverse_iterator it;for (it = vec.rbegin();         // 迭代器指向最后一个元素it != vec.rend();          // rend() 指向第一个元素的前一个++it)					    // ++操作访问前一个元素cout << *it<< " ";    // prints 9,8,7,...0return 0;
}

迭代器解引用

vector<string> vec;
auto it = vec.begin();
(*it).empty()  //检查vector中的元素是否为空,只需检查it所指字符串是否为空
  • 箭头运算符(->)
it->mem & (*it).mem  表达的意思相同

WARNING

任何一种可能改变vector对象容量的操作,比如push_back,都会使该vector对象的迭代器失效。
但凡是使用了迭代器的循环体,都不要向迭代器所属的容器添加元素。

迭代器运算

在这里插入图片描述
或者是两个迭代器相减,就可以得到中间隔了多少个元素。

使用迭代器运算的一个经典算法是二分搜索:

vector<int> text = {1,2,3,4,5};auto sought = 2;auto beg = text.begin(), end = text.end();auto mid = beg + (end - beg) / 2;   //初始状态的中间点while(mid != end && *mid != sought) {if(sought < *mid) end = mid;else beg = mid + 1;mid = beg + (end - beg) / 2;   //新的中间点}

循环过程终止时,mid或者等于end或者指向要找的元素。如果说mid等于end,说说明text中没有我们要找的元素。

http://www.ijyty.com/news/174639.html

相关文章:

  • 福州百度做网站多少钱中国建设银行十堰分行网站
  • 做网上推广网站广州seo排名外包
  • 唐山网站排名推广如何防范钓鱼网站
  • 网站开发手册wordpress本地化插件
  • 家居网站模板网站高端网站建设
  • 加强网站建设工作总结长春网站建设wang
  • 济南网站制作推广网站审核照片幕布
  • 网站建设加排名要多少网站悬浮窗代码
  • 门户网站字体软文推广策划方案
  • 网络域名的网站互联网公司营业执照经营范围
  • 做外贸必须用的社交网站天津线上推广公司哪个好
  • 网站制作网站建设无锡seo
  • 昆明营销型网站建设软件开发一个月多少工资
  • 手机网站被禁止访问怎么打开网页怎么接广告推广
  • 中国航空港建设总公司网站做外贸的人经常逛的网站
  • 开发手机网站的步骤免费的建网站软件
  • 专业网站制作公司四川蜀山传奇网页游戏
  • 短视频网站平台怎么做的建设银行互联网网站
  • 网站标题优化工具网站建设 交易保障
  • 重庆网站排名提升网页版qq中心登录入口
  • 网站建设职业怎么样网站设计就业形势
  • 河北唐山 网站建设百度seo关键词优化工具
  • 帮助传销做网站违法吗巴彦淖尔市百家姓网站建设
  • 企业做网站要注意些什么wordpress钉钉
  • 昆明建设工程质量备案在哪个网站昆明招工网站找普工作建设工作
  • 个人博客网站域名注册网络运营商无服务是怎么回事
  • 果洛营销网站建设公司网站建设的色彩搭配
  • 织梦手机网站分亨链接怎么做运城市做网站公司
  • 电话销售做网站犯法吗朔州建设机械网站
  • 怎么做自己地网站谷歌浏览器在线入口