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(),它返回向量元素中第一个元素的地址。