SlideShare a Scribd company logo
Chapter 6 陣列 陣列 深度學習   C ++  深度學習   C ++
陣列儲存機制 ,[object Object],陣列 深度學習   C ++  int int int int int 4 x 5 = 20 bytes 5  個整數 array double 8 x 6 = 48 bytes double double double double double 6  個雙精確度浮點數
傳統陣列 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],陣列 深度學習   C ++  //  a   為  3  個整數的陣列 //  b   為  4  個字元的陣列 //  c   為  5  個單精度浮點數的陣列 //  錯誤 , 陣列的長度不可為另一變數 ,[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],使用傳統陣列 陣列 深度學習   C ++  1 2 3 100 ... ... foo[0] foo[1] foo[2] //  錯誤 //  正確
傳統陣列初始值的設定 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],陣列 深度學習   C ++  //  c = 1 2 3 4 5 //  第  1  個元素是  1 , 其他為  0 //  100  個元素都是  0 //  a = 1 2 3 4 5 //  b = 1 2 3 0 0
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],陣列長度的處理 陣列 深度學習   C ++
範例 : 打亂陣列元素 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],陣列 深度學習   C ++  2 4 6 8 10 8 4 10 2 6
巴斯卡三角形  ( 一 ) ,[object Object],陣列 深度學習   C ++  1   …  … a[i] b[i] 1   每列頭尾元素 a[i-1]+a[i]   其它   ,[object Object],[object Object],Pascal triangle 1 3 3 1 1 2 1 1 1 1 程式 輸出
多維陣列  ,[object Object],[object Object],[object Object],[object Object],[object Object],陣列 深度學習   C ++  6  個整數 , 共   24 bytes //  a  為  2  列  3  行的整數矩陣 //   印出  24 //   共   12  個元素 , 48  個位元組 a[0][0] a[0][1] a[0][2] a[1][0] a[1][1] a[1][2] b[0][0][0] b[0][0][1] b[0][0][2] b[0][1][0] b[0][1][1] b[0][1][2] b[1][0][0] b[1][0][1] b[1][0][2] b[1][1][0] b[1][1][1] b[1][1][2]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],多維陣列的初始值設定   ( 一 ) 陣列 深度學習   C ++  1 0 0 2 3 0  1 0 0 1 1 0 1 1 1
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],多維陣列的初始值設定   ( 二 ) 陣列 深度學習   C ++  ... 1 0 0 2 3 0 4 0 5 6
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],矩陣相乘 陣列 深度學習   C ++  = C A B i  屬於   {0..m-1} j  屬於   {0..n-1} 程式 輸出
[object Object],[object Object],[object Object],巴斯卡三角形   ( 二 ) 陣列 深度學習   C ++  p = …  …  …  … 1   ,  i=j  或  j=0 p[i-1][j-1] + p[i-1][j]  ,  其它   程式 輸出
向量陣列 ,[object Object],[object Object],陣列 深度學習   C ++  #include <vector> unsigned int n ; cin >> n ; vector< int >  a(n) ; int  b[n] ; // a  為  n  個元素的整數向量陣列 //  錯誤 ,[object Object],vector
向量陣列物件 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],陣列 深度學習   C ++  //  a  為整數向量陣列 , 有   2   個元素 //  b  為字元向量陣列 , 有   5   個元素
簡單向量陣列物件初值設定 ,[object Object],[object Object],[object Object],[object Object],[object Object],陣列 深度學習   C ++  //  a  有  3  個整數 //   起始值皆為  1 //  b  有  5  個字元  ’ a’ //   錯誤
向量陣列物件的指定 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],陣列 深度學習   C ++  //  a  有  5  個  ’ x’  字元 //  指定後 , a   與  b  相同 //  錯誤 //  b  有  3  個  ’ y’  字元
包牌程式 : 迴圈篇 ,[object Object],[object Object],[object Object],[object Object],陣列 深度學習   C ++  combination 1 2 3  1 2 4   1 2 5 1 3 4   1 3 5   1 4 5 2 3 4  2 3 5   2 4 5 3 4 5   10 種 程式 輸出
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],陣列與指標  ( 一 ) 陣列 深度學習   C ++  foo p 5 2 3 &foo[0]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],陣列與指標  ( 二 ) 陣列 深度學習   C ++  //  p  指向  foo  陣列的首位元素 //   錯誤 //   錯誤 , foo  不能被更動 //  變更  p  所指向的位址將  foo  陣列元素依次列印
指標與一維陣列 ,[object Object],[object Object],[object Object],陣列 深度學習   C ++  p foo 共   N  個元素 //  &foo[0]  為第一個元素位址 //  N  為常數 位址  &foo[i]   <=>  p+i 元素  foo[i]   <=>  *(p+i)   <=>  p[i] foo[0] foo[1] foo[2] ... ... ... foo[N-1] &foo[0]
[object Object],[object Object],[object Object],指標與二維陣列 陣列 深度學習   C ++  //  &foo[0][0]  為第一個元素位址 p foo 共   R * C  個元素 //  R , C  為常數 位址  &foo[i][j]   <=>  p+i*C+j  元素  foo[i][j]   <=>  *(p+i*C+j)   <=>  p[i*C+j] foo[0][0] foo[0][1] ... foo[R-1][C-1] &foo[0][0]
[object Object],[object Object],[object Object],指標與三維陣列 陣列 深度學習   C ++  //  &foo[0][0][0]  為 //   第一個元素位址 p foo 共   A * B * C  個元素 //  A , B , C  為常數 位址  &foo[i][j][k]   <=>  p + i*B*C + j*C + k 元素  foo[i][j][k] <=>  *(p + i*B*C + j*C + k)   <=>  p[i*B*C + j*C + k]   foo[0][0][0] foo[0][0][1] ... foo[A-1][B-1][C-1] &foo[0][0][0]
指標指向多維陣列 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],陣列 深度學習   C ++  指標   P  P+1  p+2  p+3  p+4  p+5   //  陣列有  R  列  C  行個整數 //  指標  P  指向  foo  陣列首位元素 //  相當於   foo[i][j] = i+j 元素 foo[0][0] foo[0][1] foo[0][2] foo[1][0] foo[1][1] foo[1][2] 資料 0 1 2 1 2 3
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],多維陣列與指標 陣列 深度學習   C ++
多維陣列與陣列式指標  ( 一 ) ,[object Object],[object Object],[object Object],[object Object],陣列 深度學習   C ++  ,[object Object]
多維陣列與陣列式指標  ( 二 ) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],陣列 深度學習   C ++  1 2 3 4 5 6 foo foo [ 0 ] foo [ 1 ] * foo *( foo + 1 ) 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 6 6 6
多維陣列與陣列式指標  ( 三 ) ,[object Object],[object Object],[object Object],[object Object],陣列 深度學習   C ++  //  錯誤   ,[object Object]
多維陣列與陣列式指標  ( 四 ) ,[object Object],[object Object],[object Object],[object Object],[object Object],陣列 深度學習   C ++  ,[object Object],//  p  為指標式陣列 //   每次以  3   個整數為移動單位 //  q  為陣列式指標 , 效果同上 //  r  為陣列式指標 //   指向  foo   第  2   列的起始位址
多維陣列與陣列式指標  ( 五 ) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],陣列 深度學習   C ++  1 2 3 4 5 6
指標陣列  ( 一 ) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],陣列 深度學習   C ++  //  9  個整數元素的陣列 //  陣列內包含  9   個整數指標的元素 ,[object Object]
指標陣列  ( 二 ) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],陣列 深度學習   C ++
點矩陣文字  ,[object Object],[object Object],[object Object],[object Object],陣列 深度學習   C ++  0  1 1 1 1 1 1 1   => 127  0 0 0 0  1  0 0 0  => 8 0 0 0 0  1  0 0 0  => 8 0 0  1 1 1 1 1  0  => 62 0 0 0 0  1  0  1  0  => 10  0 0 0  1  0 0  1  0  => 18 0 0  1  0 0  1  0 0  => 36 1 1 1 1 1 1 1 1   => 255 程式 輸出
矩陣相乘 : 利用指標 ,[object Object],[object Object],陣列 深度學習   C ++  B A pa pb 2 3 2 1 0 2 1 0 0 2 3 0 1 0 0 2 3 0  A = B = 2 3 2 1 0 2 &A[0][0] &B[0][0] 程式 輸出

More Related Content

What's hot

Ch5 教學
Ch5 教學Ch5 教學
Ch5 教學
hungchiayang1
 
Func diff cal_exercise2-3
Func diff cal_exercise2-3Func diff cal_exercise2-3
Func diff cal_exercise2-3
Alisha Smile
 
Ch9 教學
Ch9 教學Ch9 教學
Ch9 教學
hungchiayang1
 
Ch1 教學
Ch1 教學Ch1 教學
Ch1 教學
hungchiayang1
 
Ppt 101-119
Ppt 101-119Ppt 101-119
Ppt 101-119
hungchiayang1
 
Ppt 26-50
Ppt 26-50Ppt 26-50
Ppt 26-50
hungchiayang1
 
Ppt 1-50
Ppt 1-50Ppt 1-50
Ppt 1-50
hungchiayang1
 
Ppt 78-100
Ppt 78-100Ppt 78-100
Ppt 78-100
hungchiayang1
 
Sym py edu
Sym py eduSym py edu
Sym py edu
Alisha Smile
 
Ppt 167-173
Ppt 167-173Ppt 167-173
Ppt 167-173
hungchiayang1
 
Ppt 145-149
Ppt 145-149Ppt 145-149
Ppt 145-149
hungchiayang1
 
Python differential equation
Python differential equationPython differential equation
Python differential equation
hungchiayang1
 
Ch11 教學
Ch11 教學Ch11 教學
Ch11 教學
hungchiayang1
 
P127 135 new
P127 135 newP127 135 new
P127 135 new
hungchiayang1
 
Ch12 範例
Ch12 範例Ch12 範例
Ch12 範例
hungchiayang1
 
Ch9 範例
Ch9 範例Ch9 範例
Ch9 範例
hungchiayang1
 
Python basic - v01
Python   basic - v01Python   basic - v01
Python basic - v01
ssuser5e7722
 
Ch5 範例
Ch5 範例Ch5 範例
Ch5 範例
hungchiayang1
 
Ppt 51-77
Ppt 51-77Ppt 51-77
Ppt 51-77
hungchiayang1
 
Ppt 120-126
Ppt 120-126Ppt 120-126
Ppt 120-126
hungchiayang1
 

What's hot (20)

Ch5 教學
Ch5 教學Ch5 教學
Ch5 教學
 
Func diff cal_exercise2-3
Func diff cal_exercise2-3Func diff cal_exercise2-3
Func diff cal_exercise2-3
 
Ch9 教學
Ch9 教學Ch9 教學
Ch9 教學
 
Ch1 教學
Ch1 教學Ch1 教學
Ch1 教學
 
Ppt 101-119
Ppt 101-119Ppt 101-119
Ppt 101-119
 
Ppt 26-50
Ppt 26-50Ppt 26-50
Ppt 26-50
 
Ppt 1-50
Ppt 1-50Ppt 1-50
Ppt 1-50
 
Ppt 78-100
Ppt 78-100Ppt 78-100
Ppt 78-100
 
Sym py edu
Sym py eduSym py edu
Sym py edu
 
Ppt 167-173
Ppt 167-173Ppt 167-173
Ppt 167-173
 
Ppt 145-149
Ppt 145-149Ppt 145-149
Ppt 145-149
 
Python differential equation
Python differential equationPython differential equation
Python differential equation
 
Ch11 教學
Ch11 教學Ch11 教學
Ch11 教學
 
P127 135 new
P127 135 newP127 135 new
P127 135 new
 
Ch12 範例
Ch12 範例Ch12 範例
Ch12 範例
 
Ch9 範例
Ch9 範例Ch9 範例
Ch9 範例
 
Python basic - v01
Python   basic - v01Python   basic - v01
Python basic - v01
 
Ch5 範例
Ch5 範例Ch5 範例
Ch5 範例
 
Ppt 51-77
Ppt 51-77Ppt 51-77
Ppt 51-77
 
Ppt 120-126
Ppt 120-126Ppt 120-126
Ppt 120-126
 

Viewers also liked

Ud com podem ajudar als nostres boscos1
Ud com podem ajudar als nostres boscos1Ud com podem ajudar als nostres boscos1
Ud com podem ajudar als nostres boscos1UIB
 
실수만발 김대리 It로_위기극복
실수만발 김대리 It로_위기극복실수만발 김대리 It로_위기극복
실수만발 김대리 It로_위기극복JongHwa Hyun
 
Sosyal Paylaşım Sitelerinde Üye Bağlılığı Üzerine Bir Araştırma
Sosyal Paylaşım Sitelerinde Üye Bağlılığı Üzerine Bir AraştırmaSosyal Paylaşım Sitelerinde Üye Bağlılığı Üzerine Bir Araştırma
Sosyal Paylaşım Sitelerinde Üye Bağlılığı Üzerine Bir AraştırmaAyşe Vergen
 
Kitchen3
Kitchen3Kitchen3
Kitchen3Benera
 
Repoblam
RepoblamRepoblam
RepoblamUIB
 

Viewers also liked (9)

Studio1
Studio1Studio1
Studio1
 
Baska
BaskaBaska
Baska
 
Ud com podem ajudar als nostres boscos1
Ud com podem ajudar als nostres boscos1Ud com podem ajudar als nostres boscos1
Ud com podem ajudar als nostres boscos1
 
실수만발 김대리 It로_위기극복
실수만발 김대리 It로_위기극복실수만발 김대리 It로_위기극복
실수만발 김대리 It로_위기극복
 
Ch 5
Ch 5Ch 5
Ch 5
 
La moral kantiana
La moral kantianaLa moral kantiana
La moral kantiana
 
Sosyal Paylaşım Sitelerinde Üye Bağlılığı Üzerine Bir Araştırma
Sosyal Paylaşım Sitelerinde Üye Bağlılığı Üzerine Bir AraştırmaSosyal Paylaşım Sitelerinde Üye Bağlılığı Üzerine Bir Araştırma
Sosyal Paylaşım Sitelerinde Üye Bağlılığı Üzerine Bir Araştırma
 
Kitchen3
Kitchen3Kitchen3
Kitchen3
 
Repoblam
RepoblamRepoblam
Repoblam
 

Similar to Ch 6

C程式-陣列與指標
C程式-陣列與指標C程式-陣列與指標
C程式-陣列與指標
艾鍗科技
 
ncuma_串列.pptx
ncuma_串列.pptxncuma_串列.pptx
ncuma_串列.pptx
NCU MCL
 
Ppt 51-77
Ppt 51-77Ppt 51-77
Ppt 51-77
hungchiayang1
 
竞赛中C++语言拾遗
竞赛中C++语言拾遗竞赛中C++语言拾遗
竞赛中C++语言拾遗
乐群 陈
 
Python 入門
Python 入門 Python 入門
Python 入門
Andy Yao
 
17第十七讲(第七章中)(2)
17第十七讲(第七章中)(2)17第十七讲(第七章中)(2)
17第十七讲(第七章中)(2)何青青 Clare
 
第4章函数
第4章函数第4章函数
第4章函数
summerfeng
 
ncuma_型別與迴圈.pptx
ncuma_型別與迴圈.pptxncuma_型別與迴圈.pptx
ncuma_型別與迴圈.pptx
NCU MCL
 
Python学习笔记
Python学习笔记Python学习笔记
Python学习笔记
Lingfei Kong
 
Ch8 教學
Ch8 教學Ch8 教學
Ch8 教學
hungchiayang1
 
1 C入門教學
1  C入門教學1  C入門教學
1 C入門教學Sita Liu
 
Taylor example
Taylor exampleTaylor example
Taylor example
Alisha Smile
 
实验一 Mathematica软件简介
实验一   Mathematica软件简介实验一   Mathematica软件简介
实验一 Mathematica软件简介guestfe33f0e
 
实验一 Mathematica软件简介
实验一   Mathematica软件简介实验一   Mathematica软件简介
实验一 Mathematica软件简介Xin Zheng
 

Similar to Ch 6 (20)

Ch 8
Ch 8Ch 8
Ch 8
 
C程式-陣列與指標
C程式-陣列與指標C程式-陣列與指標
C程式-陣列與指標
 
ncuma_串列.pptx
ncuma_串列.pptxncuma_串列.pptx
ncuma_串列.pptx
 
Ch4
Ch4Ch4
Ch4
 
Ppt 51-77
Ppt 51-77Ppt 51-77
Ppt 51-77
 
Ch5
Ch5Ch5
Ch5
 
竞赛中C++语言拾遗
竞赛中C++语言拾遗竞赛中C++语言拾遗
竞赛中C++语言拾遗
 
Python 入門
Python 入門 Python 入門
Python 入門
 
Ch5
Ch5Ch5
Ch5
 
17第十七讲(第七章中)(2)
17第十七讲(第七章中)(2)17第十七讲(第七章中)(2)
17第十七讲(第七章中)(2)
 
第4章函数
第4章函数第4章函数
第4章函数
 
ncuma_型別與迴圈.pptx
ncuma_型別與迴圈.pptxncuma_型別與迴圈.pptx
ncuma_型別與迴圈.pptx
 
Python学习笔记
Python学习笔记Python学习笔记
Python学习笔记
 
Ch8 教學
Ch8 教學Ch8 教學
Ch8 教學
 
Ch8
Ch8Ch8
Ch8
 
Ch1
Ch1Ch1
Ch1
 
1 C入門教學
1  C入門教學1  C入門教學
1 C入門教學
 
Taylor example
Taylor exampleTaylor example
Taylor example
 
实验一 Mathematica软件简介
实验一   Mathematica软件简介实验一   Mathematica软件简介
实验一 Mathematica软件简介
 
实验一 Mathematica软件简介
实验一   Mathematica软件简介实验一   Mathematica软件简介
实验一 Mathematica软件简介
 

Ch 6

  • 1. Chapter 6 陣列 陣列 深度學習 C ++ 深度學習 C ++
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.