数组和映射的区别
admin
2023-07-30 20:23:06
0

数组

数组是存储在连续的内存位置的项目的集合。其原理是将同一类型的多个项目存储在一起。这使得计算每个元素的位置更加容易,只需将偏移量加到一个基值上,即数组中第一个元素的内存位置(一般用数组的名称表示)。
下面给出了数组的示意图-
数组

程序1:
下面是一个一维数组的图示 –

// C++ program to illustrate 1D array
#include 
using namespace std;

// Driver Code
int main()
{
   // Given array
   int arr[] = { 6, 10, 5, 0 };

   // Print the array elements
   for (int i = 0; i < 4; i++) {
      cout << arr[i] << " ";
   }

   return 0;
}

Java示例:

// Java program to illustrate 1D array
class YiibaiDemo{

// Driver Code
public static void main(String[] args)
{
   // Given array
   int arr[] = { 6, 10, 5, 0 };

   // Print the array elements
   for (int i = 0; i < 4; i++)
   {
      System.out.print(arr[i] + " ");
   }
}
}

运行结果:

6 10 5 0

程序2:
下面是一个二维数组的图示 –

// C++ program to illustrate 1D array
#include 
using namespace std;

// Driver Code
int main()
{
   // A 2D array with 3 rows and
   // 2 columns
   int x[3][2] = { { 0, 1 }, { 2, 3 }, { 4, 5 } };

   // Print each array element value
   // Traverse row
   for (int i = 0; i < 3; i++) {

      // Traverse column
      for (int j = 0; j < 2; j++) {
         // Print element
         cout << "Element at x[" << i<< "][" << j << "]: ";
         cout << x[i][j] << endl;
      }
   }
   return 0;
}

Java示例代码:

// Java program to illustrate 1D array
import java.util.*;
class YiibaiDemo{

// Driver Code
public static void main(String[] args)
{
   // A 2D array with 3 rows and
   // 2 columns
   int x[][] = { { 0, 1 }, { 2, 3 }, { 4, 5 } };
   // Print each array element value Traverse row
   for (int i = 0; i < 3; i++)
   {
      // Traverse column
      for (int j = 0; j < 2; j++)
      {
         // Print element
         System.out.print("Element at x[" + i +"][" + j + "]: ");
         System.out.print(x[i][j] + "n");
      }
   }
}
}

运行结果如下:

Element at x[0][0]: 0
Element at x[0][1]: 1
Element at x[1][0]: 2
Element at x[1][1]: 3
Element at x[2][0]: 4
Element at x[2][1]: 5

映射

映射是一个关联的容器,它以映射的方式存储元素。每个元素都有一个键值和一个映射值。没有两个映射值的键值是相同的。下面给出了映射的示意图 –

程序1:
下面是一个映射的代码 –

// C++ program to illustrate Map
#include 
using namespace std;

// Driver Code
int main()
{
   // Empty map container
   map gquiz1;

   // Insert elements in Map
   gquiz1.insert(pair(1, 40));
   gquiz1.insert(pair(2, 30));
   gquiz1.insert(pair(3, 60));

   // Iterator to iterate Map
   map::iterator itr;

   cout << "The map gquiz1 is : ";
   cout << "tKEYtELEMENTn";

   // Print map gquiz1
   for (itr = gquiz1.begin();
      itr != gquiz1.end(); ++itr) {
      cout << 't' << itr->first << 't' << itr->second << 'n';
   }
   return 0;
}

Java示例代码 –

// Java program to illustrate Map
import java.util.*;
class YiibaiDemo{

// Driver Code
public static void main(String[] args)
{
   // Empty map container
   HashMap gquiz1 = new HashMap();

   // Insert elements in Map
   gquiz1.put(1, 40);
   gquiz1.put(2, 30);
   gquiz1.put(3, 60);

   // Iterator to iterate Map
   Iterator> itr = gquiz1.entrySet().iterator();

   System.out.print("The map gquiz1 is : n");
   System.out.print("KEYtELEMENTn");

   // Print map gquiz1
   while(itr.hasNext())
   {
      Map.Entry entry = itr.next();
      System.out.print('t' + entry.getKey() + "t" + entry.getValue()+ "n");
   }
}
}

运行结果:

The map gquiz1 is : 
    KEY    ELEMENT
    1    40
    2    30
    3    60

数组和映射的区别 –

数组 映射
数组是相同数据类型的元素的集合。 映射是一个键和值对的散列结构。
数组的索引是从0开始的整数。Map的键可以是任何数据类型。
元素通过索引被访问。 元素通过键值被访问。
输入的元素的顺序被保持。 不保证保持顺序。
数组可以是一维、二维或多维 映射可以是多图、无序多图、无序地图等。
数组的大小必须在阵列声明时指定。 映射的大小是动态的。

相关内容

热门资讯

Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。
定时清理删除C:\Progra... C:\Program Files (x86)下面很多scoped_dir开头的文件夹 写个批处理 定...
scoped_dir32_70... 一台虚拟机C盘总是莫名奇妙的空间用完,导致很多软件没法再运行。经过仔细检查发现是C:\Program...
500 行 Python 代码... 语法分析器描述了一个句子的语法结构,用来帮助其他的应用进行推理。自然语言引入了很多意外的歧义,以我们...
小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...
pycparser 是一个用... `pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...
微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...
65536是2的几次方 计算2... 65536是2的16次方:65536=2⁶ 65536是256的2次方:65536=256 6553...
Apache Doris 2.... 亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.0 版本已于...
项目管理和工程管理的区别 项目管理 项目管理,顾名思义就是专注于开发和完成项目的管理,以实现目标并满足成功标准和项目要求。 工...