Problem

1/1

动态数组:开始

Theory Click to read/hide

动态数组
在之前关于数组的课程中,我们研究了如何创建这样的数组:
 
常数 int Nmax = 1000; int A[Nmax]; 或者 这个: intA[1000];
此方法创建一个静态数组。缺点之一是程序运行时无法更改数组元素的大小和类型。 
在上面的示例中,创建了一个包含 1000 个元素的静态数组。即在内存中分配一块区域,存放1000个int类型的元素(1000个int类型元素的数组)。数组开头的地址存储在  A 变量中。如果需要处理超过 1000 个元素的数组,则必须更改描述并重新编译程序。使用小型数组时,分配给静态数组的大部分内存将被浪费。

为了有效地使用计算机内存,有必要对其进行动态分配。换句话说,对象的内存应该在程序执行期间根据需要分配(创建新对象)。

在 C++ 中, new 和 delete 操作旨在动态分配计算机内存。操作 new 从空闲内存区分配内存,操作 delete deallocates分配的内存。 
 
创建和删除动态变量的示例
整数 *A = 新整数; //创建一个int类型的对象 *A = 15; // 对象初始化通过指针 (*) 发生 // 初始化可以立即完成 // 当声明一个动态对象时 整数 *B = 新整数(25); 输出 << *一个<< “ “ << *B; // 通过指针输出值 删除A; // 释放分配的内存 删除 B; 操作 new 创建给定类型的对象,为其分配内存,并返回指向给定内存位置的正确类型的指针。如果无法分配内存,例如没有空闲区域,则返回空指针,即指针将返回值0。任何数据类型都可以分配内存: int float,doublechar 

同样,在 C++ 中,您可以创建一个将使用动态内存分配的动态数组。这种数组的大小,可以在程序运行时使用,例如,从键盘创建动态变量。
 
在 C 语法中
诠释; scanf("%d", &N); int *mas = malloc (sizeof(int) * N); // 稍后调整数组大小 // 由 realloc 使用。 ... 免费(mas); // 释放分配的内存 <分区>
在 C++ 语法中
诠释; 辛>>否; 整数*A = 新整数[N]; // 要改变数组的大小,你可以 // 将数据转移到另一个数组,并清除旧的 ... 删除 []mas; // 释放分配的内存 //方括号表示 // 我们正在释放数组下的内存

Problem

给你一个整数序列。编写一个程序,创建一个数组并连续两次向其中写入一个序列。
 
输入 
第一个给定的数字 N —序列中元素的数量(1<= N <= 100)。然后写N个数字,中间用空格隔开。
 
输出 
需要输出一个由重复序列组成的数组。
 
例子
<头> <日># <正文>
输入 输出
1 3
1 2 3
1 2 3 1 2 3
Write the program below
#include <iostream>

using namespace std;

main()
{
  int N;
  cin >> N;
        
 for( int i = 0 ; i < 2*N; i ++ )
  {
  	cout << A[i] << " ";
  }	
  
}        

     

Program check result

To check the solution of the problem, you need to register or log in!