数组

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

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

// C++ program to illustrate 1D array
#include <bits/stdc++.h>
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 <bits/stdc++.h>
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 <bits/stdc++.h>
using namespace std;

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

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

   // Iterator to iterate Map
   map<int, int>::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<Integer,
         Integer> gquiz1 = new HashMap<Integer, Integer>();

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

   // Iterator to iterate Map
   Iterator<Map.Entry<Integer, Integer>> itr = gquiz1.entrySet().iterator();

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

   // Print map gquiz1
   while(itr.hasNext())
   {
      Map.Entry<Integer, Integer> 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的键可以是任何数据类型。
元素通过索引被访问。 元素通过键值被访问。
输入的元素的顺序被保持。 不保证保持顺序。
数组可以是一维、二维或多维 映射可以是多图、无序多图、无序地图等。
数组的大小必须在阵列声明时指定。 映射的大小是动态的。
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果。
转载请注明:文章转载自 有区别网 [http://www.vsdiffer.com]
本文标题:数组和映射的区别
本文链接:https://www.vsdiffer.com/vs/difference-between-array-and-map.html
免责声明:以上内容仅是站长个人看法、理解、学习笔记、总结和研究收藏。不保证其正确性,因使用而带来的风险与本站无关!如本网站内容冒犯了您的权益,请联系站长,邮箱: ,我们核实并会尽快处理。