vector :: data()函数,以及C ++ STL中的示例

C ++ vector :: data()函数

vector :: data()“ vector”头文件的库函数,用于访问矢量元素,它返回一个指针,该指针指向矢量内部用于存储元素的内存数组。

注意:要使用向量,请包含<vector>标头。

vector :: data()函数的语法

    vector::data();

参数:无–不接受任何内容。

返回值: value_type * –返回指向向量内部使用的数组中第一个元素的指针。

示例

    Input:
    vector<int> vector1{ 1, 2, 3, 4, 5 };
    
    //声明一个相同类型的指针
    int* ptr = vector1.data();
    
    Accessing elements:
    cout << *ptr << endl;
    ptr++;
    cout << *ptr << endl;

    Output:
    1
    2

C ++程序演示vector :: data()函数的示例

//C ++ STL程序演示示例
//vector :: data()函数

#include <iostream>
#include <vector>
using namespace std;

int main(){
    vector<int> v1{ 10, 20, 30, 40, 50 };

    //声明一个相同类型的指针
    int* ptr = v1.data();

    //打印所有元素
    //使用vector :: data()函数
    cout << "all elements of vector v1..." << endl;
    for (int i = 0; i < v1.size(); i++) {
        cout << "element at index " << i << " : " << *ptr << endl;
        //指针增加
        ptr++;
    }

    //更新一些元素
    //再次初始化指针
    ptr = v1.data();
    *(ptr + 0) = 100;
    *(ptr + 1) = 200;
    *(ptr + 2) = 300;

    //更新后,打印所有元素
    //使用vector :: data()函数
    cout << "all elements of vector v1..." << endl;
    for (int i = 0; i < v1.size(); i++) {
        cout << "element at index " << i << " : " << *ptr << endl;
        //指针增加
        ptr++;
    }

    return 0;
}

输出结果

all elements of vector v1...
element at index 0 : 10
element at index 1 : 20
element at index 2 : 30
element at index 3 : 40
element at index 4 : 50
all elements of vector v1...
element at index 0 : 100
element at index 1 : 200
element at index 2 : 300
element at index 3 : 40
element at index 4 : 50

参考:C ++ vector :: data()