打印指针向量的值

时间:2018-12-01 19:02:42

标签: c++ pointers vector

说我有一个指针向量,但是我想打印出第一个指针指向的值。我将使用什么语法?我正在学习使用指针,但我自己在Google的任何地方都找不到这种情况。

例如:

vector<int*> vec;
//fill the vector however it needs to be
cout << vec[0]; 
//This prints an address but I want the value that address points to

2 个答案:

答案 0 :(得分:1)

您可以通过用*解引用指针来获取指针所指向的值,因此您将得到*(vec[0]),这将要求向量中至少包含一个元素。首先要指出的是当然有效的东西。

话虽如此,请重新考虑您是否真的需要使用指针,很多时候我发现没有充分理由使用指针。如果您没有充分的理由证明使用指针是合理的,请使用普通的int

答案 1 :(得分:0)

您只需取消引用通过vec[0]获得的指针,即您必须编写

cout << *(vec[0]) << endl;

但是,请注意,您没有为指针保留内存。也许您甚至想要管理整数的简单数组。 一个可行的示例(即使仍然可以讨论使用保持指向整数的指针的向量有多有意义)的示例如下:

int main() {

    int a[] = { 1,2,3 };
    std::vector<int*> vec;
    vec.push_back(a);
    cout << *(vec[0]) << endl;
    cout << vec[0][1] << endl;
}

输出:

1
2