首页 > 编程语言 >04_C++字符串_迭代器使用

04_C++字符串_迭代器使用

时间:2024-03-14 17:35:10浏览次数:23  
标签:迭代 04 auto 元素 mid C++ num include

概念:迭代器是一种检查容器内元素并遍历元素的数据类型,通常用于对C++中各种容器内元素的访问,但不同的容器有不同的迭代器,初学者可以将迭代器理解为指针。

1.使用迭代器

使用begin和end,begin成员负责返回第一个元素(或者第一个字符)的迭代器。end成员返回指向容器“尾元素的下一个位置”的迭代器,即根本不存在的“尾后”元素。(没有什么实际含义,仅是个标记,代表已经处理好容器中所有元素)

2.迭代器运算符

 使用迭代器读取字符串

#include<iostream>
#include<string>
using namespace std;

int main() {
    //迭代器
    string s = "hello";
    for (auto s1 = s.cbegin(); s1 != s.end();++s1) {
    
        cout << "s" << *s1 << endl;
}
}

举例:使用迭代器完成二分查找

#include<iostream>
#include<string>
#include<vector>
using namespace std;

int main() {
    //迭代器
    vector<int> num{ 12,22,43,66,78,99 };
    //使用迭代器完成二分搜索
    //搜索该字符串
    //需要搜索的元素  字符串中的元素mid
    int a = 78;
    auto beg = num.cbegin();
    auto endd = num.cend();
    auto mid = num.cbegin() + num.size() / 2;
    while (mid!=beg && *mid!=a)
    {
        if (a <= *mid)
            //查找的值是否在前半段
            endd = mid;
        else
            //在后半段
            beg = mid + 1;
    //新的中间点 mid = beg + (endd - beg) / 2; } cout << *mid << endl; }

 

标签:迭代,04,auto,元素,mid,C++,num,include
From: https://www.cnblogs.com/qhj384343045-/p/18073372

相关文章

  • C++文件输入输出
    前置工作引入#include<fstream>才可以使用输入输出流读文件#include<fstream>#include<iostream>usingnamespacestd;intmain(){ chardata[100]; //读取 ifstreamfin; fin.open("data.txt"); fin.getline(data,100); //读取一行 cout<<data&l......
  • C++、Java 和 Go 是三种流行的编程语言,它们各有不同的特点和应用场景
    C++:面向对象和泛型编程:C++是一种多范式编程语言,支持面向对象编程(OOP)和泛型编程(GenericProgramming)。性能:C++是一种系统级编程语言,注重性能和内存管理。它提供了直接的内存访问和指针操作,使得程序员可以更精细地控制内存和计算资源。灵活性:C++允许程序员直接操作硬件,并提......
  • ros2中Qos的C++配置方法
    1.dds_debug.hpp#ifndefDDS_DEBUG__DDS_DEBUG_HPP_#defineDDS_DEBUG__DDS_DEBUG_HPP_#include<rclcpp/rclcpp.hpp>#include<rclcpp/qos.hpp>#include<rmw/types.h>#include<sensor_msgs/msg/imu.hpp>constrmw_qos_profile_tmy_cus......
  • 2024-03 STEMA 考试C++ 中级真题解析
    2024-03-10STEMA考试C++中级真题解析一、选择题(50分)1、    (110010)2+(c3)16的结果是(B )。A.(240)10        B.(11110101)2        C.(366)8        D.(f6)16备注:此题目下标代表进制,因不支持md格式。  2、   表达式1000/3的结果是(......
  • C++——智能指针
    本章代码Gitee仓库:智能指针文章目录1.为什么要有智能指针2.RAII机制3.智能指针原理4.auto_ptr(c++98)5.unique_ptr(c++11)6.shared_ptr(c++11)6.1shared_ptr线程安全问题6.2shared_ptr循环引用6.3定制删除器7.weak_ptr(c++11)8.C/C++动态内存1.......
  • 404. 左叶子之和c
    /***Definitionforabinarytreenode.*structTreeNode{*intval;*structTreeNode*left;*structTreeNode*right;*};*/intpreorder(structTreeNode*root,intpre){if(!root)return0;if(!root->left&&!roo......
  • ACM算法竞赛入门——C++基础语法(匠心之作,2.5万字总结,0基础教学,纯干货)建议收藏!!!
    xcx:主流语言这么多,为什么acm算法竞赛要用C++呢?shy:C++在竞赛中实现算法和数据结构时具有更高的执行效率,对于一些需要处理大量数据和复杂算法的竞赛题目来说,C++能够提供更快的执行速度和更低的资源消耗,这对于算法竞赛中的性能要求至关重要。hwjw:除此之外,C++还有什么其他的......
  • C++超详细知识点(四):类的继承和派生
    目录标题:类的继承和派生1.公有继承2.保护继承3.私有继承4.问题:基类的私有成员在派生类中不可访问,那么怎么才能访问其父类(基类)的私有成员呢?(1)使用公有/保护成员函数。(2)使用友元函数或友元类。标题:类的继承和派生  类的继承和派生是一种机制,允许你创建一个新的......
  • 04 games101-变换(模型、视图、投影)
    04变换(模型、视图、投影)MVP变换MVP变换用来描述视图变换的任务,即将虚拟世界中的三维物体映射(变换)到二维坐标中。MVP变换分为三步:●模型变换(modeltranformation):将模型空间转换到世界空间(找个好的地方,把所有人集合在一起,摆个pose)●摄像机变换(viewtranformation):将......
  • 【趣味学算法】04_与谁结婚(逻辑推断|条件组合)
    注:本系列仅为个人学习笔记,学习内容为《算法小讲堂》(视频传送门),通俗易懂适合编程入门小白,需要具备python语言基础,本人小白,如内容有误感谢您的批评指正有三对情侣要结婚,假设三位靓仔分别为A、B、C,三位小仙女为X、Y、Z。他们三对情侣比较皮,准备让吃瓜路小由鱼来猜!小由鱼......