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