C++程式獲取陣列中的第一個元素
為了在連續的位置或以可以順序訪問的方式儲存多個相同型別的元素。陣列是最好的選擇之一。幾乎所有程式語言、陣列或類似的資料結構都可用於資料儲存。陣列是線性資料結構,因為插入、刪除、遍歷和更新等基本操作需要線性時間才能執行。訪問陣列元素也是一項簡單的任務。在本文中,我們將瞭解如何在 C++ 中獲取陣列中的第一個元素。
透過示例理解概念
Given array A = [10, 14, 65, 85, 96, 12, 35, 74, 69] The first element is 10
例如,像上面示例中給出的陣列一樣,可以使用其索引位置訪問第一個元素。在 C++(以及其他一些程式語言,如 Java、Python)中,陣列索引從索引 0 開始。因此,要讀取第一個索引,我們只需從索引 0 獲取元素即可。
演算法
將陣列 A 作為輸入
first_element := 使用 A[ 0 ] 獲取
返回 first_element
示例
#include <iostream> # define Z 50 using namespace std; void displayArr(int arr[], int n){ for( int i = 0; i < n; i++ ){ cout << arr[ i ] << ", "; } cout << endl; } int pickFirstElement( int A[], int n) { int first; first = A[ 0 ]; return first; } int main() { int A[ Z ] = {57, 10, 14, 19, 86, 52, 32, 14, 76, 65, 32, 14}; int n = 12; cout << "Given Array: "; displayArr( A, n ); int first = pickFirstElement( A, n ); cout << "The first element of A: " << first << endl; int B[ Z ] = { 98, 12, 10, 23, 45, 74 }; int m = 6; cout << "Another array: "; displayArr( B, m ); first = pickFirstElement( B, m ); cout << "The first element of B: " << first << endl; }
輸出
Given Array: 57, 10, 14, 19, 86, 52, 32, 14, 76, 65, 32, 14, The first element of A: 57 Another array: 98, 12, 10, 23, 45, 74, The first element of B: 98
使用指標和基地址
陣列是基(第一個)位置地址以及偏移量(索引)。因此,另一種無需使用方括號訪問索引的方法是使用指標。要獲取第一個元素,可以使用陣列的基地址的值。讓我們看看實現以獲得更清晰的瞭解。
示例
#include <iostream> # define Z 50 using namespace std; void displayArr(int arr[], int n){ for( int i = 0; i < n; i++ ){ cout << arr[ i ] << ", "; } cout << endl; } int pickFirstElement( int A[], int n) { int first; first = *A; return first; } int main() { int A[ Z ] = {57, 10, 14, 19, 86, 52, 32, 14, 76, 65, 32, 14}; int n = 12; cout << "Given Array: "; displayArr( A, n ); int first = pickFirstElement( A, n ); cout << "The first element of A: " << first << endl; int B[ Z ] = { 98, 12, 10, 23, 45, 74 }; int m = 6; cout << "Another array: "; displayArr( B, m ); first = pickFirstElement( B, m ); cout << "The first element of B: " << first << endl; }
輸出
Given Array: 57, 10, 14, 19, 86, 52, 32, 14, 76, 65, 32, 14, The first element of A: 57 Another array: 98, 12, 10, 23, 45, 74, The first element of B: 98
此處,A 的值(使用指標 *A 編寫)表示 A 指向的地址的值。這是陣列的基地址。
使用向量
向量是動態陣列,否則,整個過程與陣列類似。在這裡,要讀取第一個元素,我們只需訪問第一個索引 0。程式碼如下所示:
示例
#include <iostream> #include <vector> # define Z 50 using namespace std; void displayArr( vector<int> v ){ for( int i = 0; i < v.size() ; i++ ){ cout << v[ i ] << ", "; } cout << endl; } int pickFirstElement( vector<int> A) { int first; first = A[ 0 ]; return first; } int main() { vector<int> A = {57, 10, 14, 19, 86, 52, 32, 14, 76, 65, 32, 14}; cout << "Given Array: "; displayArr( A ); int first = pickFirstElement( A ); cout << "The first element of A: " << first << endl; vector<int> B = { 98, 12, 10, 23, 45, 74 }; cout << "Another array: "; displayArr( B ); first = pickFirstElement( B ); cout << "The first element of B: " << first << endl; }
輸出
Given Array: 57, 10, 14, 19, 86, 52, 32, 14, 76, 65, 32, 14, The first element of A: 57 Another array: 98, 12, 10, 23, 45, 74, The first element of B: 98
使用向量迭代器 begin() 函式
在之前的方法中,我們使用索引 0 獲取元素,但還有另一種可能的方法。我們可以使用 begin() 方法,該方法返回第一個元素的地址。讓我們看看程式碼以獲得更清晰的瞭解。
示例
#include <iostream> #include <vector> # define Z 50 using namespace std; void displayArr( vector<int> v ){ for( int i = 0; i < v.size() ; i++ ){ cout << v[ i ] << ", "; } cout << endl; } int pickFirstElement( vector<int> A) { int first; first = *A.begin(); return first; } int main() { vector<int> A = {57, 10, 14, 19, 86, 52, 32, 14, 76, 65, 32, 14}; cout << "Given Array: "; displayArr( A ); int first = pickFirstElement( A ); cout << "The first element of A: " << first << endl; vector<int> B = { 98, 12, 10, 23, 45, 74 }; cout << "Another array: "; displayArr( B ); first = pickFirstElement( B ); cout << "The first element of B: " << first << endl; }
輸出
Given Array: 57, 10, 14, 19, 86, 52, 32, 14, 76, 65, 32, 14, The first element of A: 57 Another array: 98, 12, 10, 23, 45, 74, The first element of B: 98
結論
對於從陣列中讀取第一個元素的方法,我們已經看到了四種不同的方法。前兩種基於 C++ 中的靜態陣列實現。要讀取第一個元素,我們只需從索引 0 獲取元素即可。同樣的事情可以使用陣列基地址的指標來完成。基地址指向第一個塊,該索引處存在的值將是第一個元素。在接下來的兩種方法中,我們使用了向量。此處的方法與靜態陣列相同。最後一種方法使用向量迭代器的 begin(),它返回向量元素中第一個元素的地址。