首页 > 编程语言 >c++遍历数组的多种方式

c++遍历数组的多种方式

时间:2024-09-05 17:15:57浏览次数:7  
标签:遍历 cout int len ++ c++ 数组

方法一:普通的for循环

for (int i = 0; i < sizeof(a) / sizeof(a[0]); i++) {
        cout << a[i] << " ";
    }

方法二:指针数组

int *p[len];
for(int i = 0; i < len; i++){
        p[i] = &a[i];
        cout << *p[i];
} 
————————————————————————————————————
int *p = a;	
for(int i = 0; i < len; i++){
    cout << *(p + i);
}

方法三:数组指针(行指针)

 int (*p)[len];  // 注意数组指针的声明必须使用常量,确保它指向的数组的大小在编译时就已经确定,不能改变
    p = &a;
    for (int i = 0; i < len; i++) {
        cout << p[0][i] << endl;
        cout << *(*(p + 0) + i) << endl;
    }

方法四:范围for循环

for (auto i: a){  // i为临时变量,只有引用类型变量可以修改原数组
    cout << i << endl;
}
_____________________
for (auto& i: a){  // auto能够自动推导变量类型,引用类型除外
    cout << i << endl;
}

方法五:迭代器遍历

 for(auto i = begin(a); i != end(a); i++){  // 成员函数begin()和end()来获取遍历开始地址和遍历结束地址,同时,迭代器使用之后会自动回收
        cout << *i << endl;
    }

标签:遍历,cout,int,len,++,c++,数组
From: https://www.cnblogs.com/fromlzs/p/18398861

相关文章

  • Qt C++设计模式->策略模式
    **策略模式(StrategyPattern)**是一种行为型设计模式,它定义了一系列算法,将每一个算法封装起来,并使它们可以互相替换,策略模式让算法可以独立于使用它的客户端而变化。这意味着,客户端可以根据需要动态选择使用哪种算法,而不需要修改算法的实现。策略模式的主要组成部分策略接......
  • C++ STL stack容器——栈
    stack容器基本概念stack是一种先进后出的数据结构,它只有一个出口,形式如下图所示。stack容器允许新增元素,移除元素,取得栈顶元素,但是除了最顶端外,没有任何地方可以存取stack的娶她元素。换句话说,stack不允许有遍历行为。元素推入栈的操作称为push,将元素推出栈的操作称为pop。st......
  • C++程序的发布部署方式及缺失依赖库dll的解决方法
    主要对Windows平台上C++项目开发过程中库目录进行梳理及程序发布要注意的相关事项进行总结,希望对其他开发者有一定的借鉴意义。1.问题的提出在最近的项目中,主要工作是为SketcchUp平台开发基于Ruby的扩展功能库,这种库文件是以.so为后缀的形式提供,用C++语言来编写实现。当我在自己......
  • C++ 使用终端GDB调试复杂项目中Segmentation Fault 和 std::bad_alloc问题
            近期在公司虚拟机上写代码遇到SegmentationFault和std::bad_alloc问题,但是项目庞大,在不了解功能、代码连接关系的时候很难追踪具体是什么地方出了问题。网络上许多关于GDB的教程仅仅停留在简单的示例中的调试,对于复杂的项目结构(多文件,多作用域,......)来说显......
  • C++(for)
    目录1.经典的for循环2.基于范围的for循环(C++11引入)3.无限for循环4.嵌套for循环5.使用continue和break控制循环流总结C++中有多种形式的for循环,每种形式适合不同的应用场景。1.经典的for循环这是C++中最基础的循环类型,由三部分组成:初始化、条件、......
  • C++ 模板(函数模板)
    模板模板介绍C++提供了函数模板(functiontemplate)。所谓函数模板。实际上是建立一个通用函数,其函数类型和形参类型不具体制定,用一个虚拟的类型来代表。这个通用函数就称为函数模板。凡事函数体相同的函数都可以使用这个模板代替,不必定义多个函数,只需在模板中定义一次即可。在调......
  • C++: std::once_flag 和 std::call_once
    std::once_flag和std::call_oncestd::once_flag和std::call_once是C++11引入的同步原语,用于确保某个函数在多线程环境中只被执行一次。它们位于头文件中,主要用于实现线程安全的初始化操作。std::once_flag概述类型:std::once_flag是一个结构体,用于记录某个函数......
  • C++ 原子变量atomic variable
    原子变量原子变量(atomicvariable)是C++11引入的一种同步机制,用于在多线程环境中进行无锁的、线程安全的操作。原子变量的操作是不可分割的,即在执行过程中不会被其他线程中断,从而避免了数据竞争和不一致的问题。原子变量位于头文件中。基本概念原子性原子性:一个操作是......
  • C++和Python混合编程——C++调用Python入门
    大纲代码结构初始化Python解释器获取GIL为什么需要GIL?GIL的影响导入Python模块并执行代码释放GIL终止Python解释器完整代码编译执行结果项目地址在《C++和Python混合编程——Python调用C++入门》一文中,我们熟悉了Python调用C++编译的动态库的方法。但是作......
  • C++11新特性
    C++11主要新特性有类的初始化与函数、新增关键字、std库新特性、lambda表达式、智能指针、线程1.关键字()nullptr取代NULL、0()constexpr:显式声明函数返回值、变量是一个常量表达式()auto:对变量类型推导,()decltype:对表达式类型推导,用法为decltype(表达式)()using:声明使用的命......