将std :: vector <size_t>数组发送到函数和打印时出错

Slu*_*ger 1 c++

考虑以下程序.

#include <iostream>
#include <vector>

void printEm(std::vector<size_t>* array){
  std::cout << array[0] << "\n";
}

  int main(){
  std::vector<size_t> array;

  return 0;
}
Run Code Online (Sandbox Code Playgroud)

出于某种原因,每当我编译这个,我得到三页值或错误,我不知道为什么.我认为类型std :: vector可能与cout的期望值不匹配.有谁知道如何解决这一问题?我会发布错误消息,但它们真的会永远存在.谢谢!

Nei*_*irk 6

您的array参数是指针,因此您需要取消引用它.

void printEm(std::vector<size_t>* array)
{
    std::cout << (*array)[0] << "\n";
}
Run Code Online (Sandbox Code Playgroud)

或通过引用传递:

void printEm(std::vector<size_t>& array)
{
    std::cout << array[0] << "\n";
}
Run Code Online (Sandbox Code Playgroud)