当前位置: 移动技术网 > IT编程>开发语言>C/C++ > C++ 二维数组的访问方式与应用(代码分析)

C++ 二维数组的访问方式与应用(代码分析)

2018年10月05日  | 移动技术网IT编程  | 我要评论

义马市,极限街区下载,帝少别太猛漫画

二维数组平时用的少,在简短的回顾之后,做下小结:

// 2dimensional_array.cpp : 定义控制台应用程序的入口点。  
//  
#include "stdafx.h"  
#include <map>  
  
//  
int getsecondval(int index)  
{  
    std::map<int, int> _tabmap;  
    _tabmap.insert(std::make_pair(11, 0));  
    _tabmap.insert(std::make_pair(12, 1));  
    _tabmap.insert(std::make_pair(13, 2));  
    _tabmap.insert(std::make_pair(14, 3));  
  
    int idx = -1;  
    std::map<int, int>::iterator itr = _tabmap.find(index);  
    if (itr != _tabmap.end())  
    {  
        idx = itr->second;  
    }  
    return idx;  
}  
//使用二维数组替换map查找功能  
int getsecondval2(int index)  
{  
    //初始化二维数组  
    int array[4][2] = {  
        {11, 0},   
        {12, 1},   
        {13, 2},  
        {14, 3}  
    };  
  
    int (*parray)[2] = array;  
    int idx = parray[index-11][1];//根据行数获取第二列的值  
    //int idx = array[index-11][1];//也行  
  
    return idx;  
}  
  
int _tmain(int argc, _tchar* argv[])  
{  
    int ary[3][4] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};  
    //int a[3][4] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};//也可以这样初始化  
          
    int (*pary)[4] = ary;  
    int i, j;  
    for(i = 0; i < 3; i++)  
    {  
        for(j = 0; j < 4; j++)  
        {  
            //printf("%d\t",a[i][j]);//方式一  
            //printf("%d\t",p[i][j]);//方式二  
            //printf("%d\t",*(*(p+i)+j));//方式三  
            printf("%d\t",*(*(ary+i)+j));//方式四  
        }  
        printf("\n");  
    }  
  
  
    //因为二维数组在内存上是按照逐行顺序排列的,所以也可以看成是一维数组,故可以这样访问:  
    int x[3][2] = {{1,2},{3,4},{5,6}};  
    int * y = (int *) x;  
    int k = 0;  
    for(k = 0; k < 3 * 2; k++)   
        printf("%d\t", y[k]);  
  
  
    //根据key查找val  
    int index = getsecondval(12);  
    printf("\ngetsecondval : %d\n", index);  
  
    //巧用二维数组替代map  
    index = getsecondval2(12);  
    printf("\ngetsecondval2 : %d\n", index);  
  
    return 0;  
}  

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网