1. 程式人生 > >C++——動態陣列

C++——動態陣列

  早就學了動態陣列,一直記不住,寫出來以便以後用到的時候查閱
  
  在C++中,陣列的大小必須是預先定義好的,才能編譯通過,但多數情況陣列的大小並不能預先知道
  
  但是同時你也不能這樣寫
  

int n;
scanf("%d",n);
int a[n];

  因為C++中不允許用變數來定義陣列,所以就用到了動態陣列,動態陣列用到了new,delete,在堆上分配記憶體

  動態陣列的用法:
  

//一維動態陣列
#include <iostream>
#include <string.h>
using namespace std;
int
main() { int n; int *p; cin>>n; p=new int[n]; for(int i=0;i<n;i++) { p[i] = i; cout << p[i]; } delete []p; return 0; }
//二維動態陣列
#include <iostream>
#include <string.h>
using namespace std;
int
main() { int m; //行數 int n; //列數 cin >> m >> n; int **p = new int*[m]; //申請行 if((p)==0) { cout << "false" << endl; return 0; } //申請列 for(int i=0;i<m;i++) { p[i] = new int[n]; if
(p[i]==0) { cout << "false" << endl; return 0; } } //初始化 for(int i=0;i<m;i++) for(int j=0;j<n;j++) p[i][j] = i; //輸出 for(int i=0;i<m;i++) for(int j=0;j<n;j++) cout << p[i][j]; //釋放記憶體 for(int i=0;i<m;i++) delete p[i]; delete []p; return 0; }

相關推薦

關於c++動態陣列的一些粗淺見解

   指標基礎   指標(pointer)這個概念有一點點抽象,大家很有可能在使用過程中被“ * ”這個解除引用操作符和“ & ”地址符的穿插使用搞混。記錄一下自己的學習內容,方便理解。   首先引入一個程式碼塊 int value = 1

c++動態陣列

注意:靜態陣列是在堆疊上(不需要自行釋放空間)建立,動態陣列是在堆上建立(需要自行釋放空間) 涉及內容: 堆(heap)-自由儲存區(free store) C語言:malloc和free c++語言:new和delete 1.動態陣列定義(見後面) 2.初始化動

【原創】C++ 動態陣列 vector 詳解

一、引入 引入:略 vector收錄在STL裡,是一種特殊的資料結構。它的中文名字叫做“動態陣列”或者“不定長陣列”,有時也被翻譯成“容器”。 說白了,vector就是一個功能強大的陣列。下面讓我

C++——動態陣列

  早就學了動態陣列,一直記不住,寫出來以便以後用到的時候查閱      在C++中,陣列的大小必須是預先定義好的,才能編譯通過,但多數情況陣列的大小並不能預先知道      但是同時你也不能這

C++動態陣列使用方法

二維陣列直接開闢記憶體,與JAVA非常相似只是多了一個星號,使用完畢需要釋放,否則記憶體洩漏 int* arr1=new int[5]; for(int i=0;i<5;i++) { arr

C++學習筆記——C++動態陣列的建立與刪除

一、C++建立一維陣列 在C++中建立動態陣列,是用new來實現的 type *p = new type [N] 當然也可以分開來寫 type *p1; p1 = new int [N]; type是指具體的資料型別, N代表的是一維陣列的列數

C List include list 動態陣列以及取其中第N個元素的方法

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

資料結構實現(一):動態陣列C++版)

資料結構實現(一):動態陣列(C++版) 1. 概念及基本框架 2. 基本操作程式實現 2.1 增加操作 2.2 刪除操作 2.3 修改操作 2.4 查詢操作 2.5 其他操作 3. 演算法複雜度分析

C++中如何定義動態陣列

  首先:為什麼需要動態定義陣列呢?   這是因為,很多情況下,在預編譯過程階段,陣列的長度是不能預先知道的,必須在程式執行時動態的給出   但是問題是,c++要求定義陣列時,必須明確給定陣列的大小,要不然編譯通不過      如: i

C指標 三維動態陣列建立

#include "stdafx.h" #include <stdio.h> #include <stdlib.h> //create 3D array add init cell 0 int*** createArray3D(int row, int col, int c

C語言實現動態陣列

採用C程式碼使用輾轉相除法實現RSA演算法的私鑰D計算時,根據φ(n)和e的不同在輾轉相除的次數不同,產生的商和餘數就不同,因此存放商和餘數的陣列需要是動態變化的。但是C語言本身無法定義動態陣列(C#、Python等可以通過List.Append方式實現),因此記錄一個C語言實現動態

C++快速入門---動態陣列(24)

C++快速入門---動態陣列(24)   編寫一個程式為一個整數型陣列分配記憶體,實現動態陣列。能夠在程式執行時讓使用者輸入一個值,自行定義陣列的長度。   新建一個動態陣列 例如: int *x = new int[10]; 可以像對待一個數組那樣使

動態陣列vector簡介(Java和C++)

1.概念描述: vector名為動態陣列 有些時候想開一個數組,但是卻不知道應該開多大長度的數組合適,因為我們需要用到的陣列很可能會根據情況變動。這時候我們就需要用到動態陣列。所謂動態陣列,也就是不定長陣列,陣列的長度可以根據我們需要動態改變。動態陣列的實現也不難,因為在C++和Java

資料結構實現 6.3:優先佇列_基於動態陣列實現(C++版)

資料結構實現 6.3:優先佇列_基於動態陣列實現(C++版) 1. 概念及基本框架 2. 基本操作程式實現 2.1 入隊操作 2.2 出隊操作 2.3 查詢操作 2.4 其他操作 3. 演算法複雜度分析

資料結構實現 6.1:二叉堆_基於動態陣列實現(C++版)

資料結構實現 6.1:二叉堆_基於動態陣列實現(C++版) 1. 概念及基本框架 1.1 滿二叉樹 1.2 完全二叉樹 2. 基本操作程式實現 2.1 增加操作 2.2 刪除操作 2.3 查詢操作

c語言定義動態陣列

我們可以通過一段簡單的程式碼示例來體會一下c語言定義動態陣列 使用malloc.h標頭檔案 #include <stdio.h> #include <malloc.h> int main() { int len; int *p =0; int i; printf(

c語言中記憶體的動態分配與釋放(多維動態陣列構建)

一. 靜態陣列與動態陣列    靜態陣列比較常見,陣列長度預先定義好,在整個程式中,一旦給定大小後就無法再改變長度,靜態陣列自己自動負責釋放佔用的記憶體。    動態陣列長度可以隨程式的需要而重新指定大小。動態陣列由記憶體分配函式(malloc)從堆(heap

靜態陣列動態陣列 c形式與c++形式的字串

既然要學習陣列,那麼先來了解一下陣列是什麼,為什麼要有陣列的出現吧。 陣列:陣列是一系列具有相同型別元素的集合。 陣列的出現是為了當定義較多變數時,使操作更簡單化,直觀化。 靜態陣列與動態陣列 *靜態陣列:*在編譯階段,陣列包含的元素數以及佔用的記憶體量是不變的。 可分為:一維陣列與

程式設計C 實驗五 題目四 二維動態陣列轉置(0294)

輸入兩個數字分別控制行向量個數和列向量個數。動態生成二維矩陣,對矩陣賦值後將其轉置輸出。 Description 輸入的第一行為了兩個整數m、n,接下來有一個由m*n個數據組成的整數矩陣。 Input 按轉置後的

程式設計C 實驗五 題目五 一維動態陣列的應用(0293)

Time limit(ms): 1000 Memory limit(kb): 65535 Submission: 13295 Accepte