平行數組

平行數組

平行數組程式設計採用多個數組隱式表示一個以記錄(record)為元素的數組。多個數組在同一下標的元素隱式對應於記錄的各個域。

基本介紹

  • 中文名:平行數組
  • 外文名:Parallel array
  • 學科:編程術語
舉例,優點與缺點,

舉例

例如,可以聲明一個數組包含100個名字,另一個數組包含100個年齡(整型),相同下標的元素成對表示一個人:
Perl語言:
my %data = (    first_name   => ['Joe',  'Bob',  'Frank',  'Hans'    ],  
                     last_name    => ['Smith','Seger','Sinatra','Schultze'],    
                       height_in_cm => [169,     158,    201,      199      ]);
for $i (0..$#{$data{first_name}}) {    
    printf "Name: %s %s\n", $data{first_name}[$i], $data{last_name}[$i];    
    printf "Height in CM: %i\n", $data{height_in_cm}[$i];
    }
Python語言:
first_names= ['Joe',  'Bob',  'Frank',  'Hans'    ]
last_names= ['Smith','Seger','Sinatra','Schultze']
heights_in_cm = [169,  158, 201,  199]
for i in range(len(first_names)):print "Name: %s %s" % (first_names[i], last_names[i])    
print "Height in CM: %s" % heights_in_cm[i]
# Using zip:for first_name, last_name
height in zip(first_names, last_names, heights_in_cm):print "Name: %s %s" % (first_name, last_name)    
                                                       print "Height in CM: %s" % height_in_cm

優點與缺點

優點:
  • 可用於僅支持基本類型作為數組元素類型的那些程式語言
  • 易於理解使用
  • 可能會避免了記憶體對齊從而節省了記憶體占用。
  • 順序遍歷小數組有利於提高cache一致性。
  • 有利於使用SIMD指令。
缺點:
  • 使用多個域時不利於cache性能
  • 增加或刪除元素時代價高昂。

相關詞條

熱門詞條

聯絡我們