C++ 数组遍历的两种方式

C++ 数组遍历的两种方式:

  

#include <iostream>

using namespace std;

int main()
{
    // 一维数组
    int fibonacci[5] = {1, 1, 2, 3, 5};

    // 使用索引遍历
    // 求数组长度:sizeof(array)/sizeof(array[0])
    cout << "Traverse By Index: ";
    for (int i = 0; i < sizeof(fibonacci)/sizeof(fibonacci[0]); i++)
    {
        cout << fibonacci[i] << " ";
    }
    cout << endl;

    // 使用指针遍历
    // 取数组的(第一个元素)地址:int* p = array
    // 求数组最后一个元素的地址:&array[sizeof(array)/sizeof(array[0])-1]
    cout << "Traverse By Pointer: ";
    for (int* p = fibonacci; p <= &fibonacci[sizeof(fibonacci)/sizeof(fibonacci[0])-1]; p++)
    {
        cout << *p << " ";
    }
    cout << endl;

    // 二维数组
    int matrix[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};

    // 使用索引遍历
    // 求一维数组长度:sizeof(array)/sizeof(array[0])
    // 求二维数组长度:sizeof(array[0])/sizeof(array[0][0])
    cout << "Traverse By Index: " << endl;
    for (int i = 0; i < sizeof(matrix)/sizeof(matrix[0]); ++i)
    {
        if (!i == 0)
        {
            cout << "| ";
        }
        for (int j = 0; j < sizeof(matrix[0])/sizeof(matrix[0][0]); ++j)
        {
            cout << matrix[i][j] << " ";
        }
    }
    cout << endl;

    // 使用指针遍历
    // 求二维数组首元素地址:int* p = &(matrix[0][0])
    // 求二维数组尾元素地址:&matrix[sizeof(matrix)/sizeof(matrix[0])-1][sizeof(matrix[0])/sizeof(matrix[0][0])]
    int count = 0;
    cout << "Traverse By Pointer: " << endl;
    for (int* p = &(matrix[0][0]); p < &matrix[sizeof(matrix)/sizeof(matrix[0])-1][sizeof(matrix[0])/sizeof(matrix[0][0])]; ++p)
    {
        if (count == (sizeof(matrix[0])/sizeof(matrix[0][0])))
        {
            cout << "| ";
            count = 0;
        }
        cout << *p << " ";
        count++;
    }
    cout << endl;

    return 0;
}

原文地址:https://www.cnblogs.com/noonjuan/p/11874791.html

时间: 2024-10-07 19:45:37

C++ 数组遍历的两种方式的相关文章

HashMap遍历的两种方式,推荐使用entrySet()

转自:HashMap遍历的两种方式,推荐使用entrySet() 第一种: Map map = new HashMap(); Iterator iter = map.entrySet().iterator(); while (iter.hasNext()) {     Map.Entry entry = (Map.Entry) iter.next();     Object key = entry.getKey();     Object val = entry.getValue(); } 效率

数组遍历的2种方式

for o in aa{ println(o) } for (index,value) in enumerate(aa){ println("\(index)\(value)") } 数组遍历的2种方式,布布扣,bubuko.com

Java中HashMap遍历的两种方式

第一种: Map map = new HashMap(); Iterator iter = map.entrySet().iterator(); while (iter.hasNext()) { Map.Entry entry = (Map.Entry) iter.next(); Object key = entry.getKey(); Object val = entry.getValue(); } 效率高,以后一定要使用此种方式! 第二种: Map map = new HashMap();

mysql存储过程中遍历数组字符串的两种方式

第一种:多次使用substring_index()的方法 DELIMITER $$ DROP PROCEDURE IF EXISTS `array`$$ CREATE  PROCEDURE `array`() BEGIN SET @array_content="www mysql com hcymysql blog 51cto com"; SET @i=1; SET @count=CHAR_LENGTH(@array_content)-CHAR_LENGTH(REPLACE(@arra

数组的遍历有两种方式

1.for循环 //一般定义一个数组 var  myarr= new Array("hi","yu","jj"); //接下来就是应用for循环的时候 for(var i=9;i<myarr.length;i++){ //输出相应的内容 document.write(a[i]+","); } 2.for/in循环遍历 //定义一个数组 var arr=new Array("he","li&q

js数组清空的两种方式

编辑器加载中...方式1,length赋值为0 这种方式很有意思, 其它语言如Java,其数组的length是只读的,不能被赋值.如 int[] ary = {1,2,3,4}; ary.length = 0; Java中会报错,编译通不过. 而JS中则可以,且将数组清空了, var ary = [1,2,3,4]; ary.length = 0; console.log(ary); // 输出 [],空数组,即被清空了 目前 Prototype中数组的 clear 和mootools库中数组的

JS 数组遍历的几种方式,性能分析

分析结果1: 以下截图中的数据是,在chrome (支持es6)中运行了100次后得出的结论(每次运行10次,一共10个循环,得到的分析结果) 可以看出,forin循环最慢.优化后的普通for循环最快 分析结果2 以下截图数据是,在chrome (支持es6)中运行了1000次后得出的结论(每次运行100次,一共10个循环,得到的分析结果) 1 javascript原生遍历方法的建议用法: 2 3 用for循环遍历数组 4 用for-in遍历对象 5 用for-of遍历类数组对象(ES6) 6

HashMap遍历的两种方式

第一种: Map map = new HashMap(); Iterator iter = map.entrySet().iterator(); while (iter.hasNext()) {     Map.Entry entry = (Map.Entry) iter.next();     Object key = entry.getKey();     Object val = entry.getValue(); }  第二种: Map map = new HashMap(); Iter

用数组和链表两种方式实现队列

手写数组实现队列 1 int queue[20]; 2 int front,rear; 3 4 void clear() 5 { 6 front = rear = -1; 7 } 8 9 int size() 10 { 11 return (rear-front); 12 } 13 14 bool empty() 15 { 16 if(front==rear) 17 return true; 18 else 19 return false; 20 } 21 22 void push(int x)