发送 std::矢量<size_t>数组到函数和打印时出错
Error sending std::vector<size_t> array to function and printing
考虑下面的程序。
#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;
}
由于某种原因,每当我编译这个时,我都得到三页的价值或错误,我不知道为什么。我认为std::vector类型可能与cout所期望的不匹配。有人知道怎么解决这个问题吗?我会发布错误信息,但它们真的会一直持续下去。谢谢!
您的array
参数是一个指针,因此您需要对其解引用。
void printEm(std::vector<size_t>* array)
{
std::cout << (*array)[0] << "n";
}
或者通过引用传递:
void printEm(std::vector<size_t>& array)
{
std::cout << array[0] << "n";
}
您将array
传递为指针,因此您需要在使用[]
操作符之前对其解引用。试试这个:
(*array)[0];
正如你的代码现在,你正试图访问元素0的数组std::vector<size_t>
和打印它。
array
是指向vector的指针,因此array[0]
是vector本身,不能将vector写入流。
获取第一个元素需要(*array)[0]
.
虽然通过(const)引用传递要好得多,但您现有的代码可以正常工作:
void printEm(const std::vector<size_t> & array)
相关文章:
- 类中私有结构的构造函数出错
- 字符串验证函数出错
- 我的类默认构造函数出错
- Dev-C++和Code::Blocks中的析构函数出错
- int对的哈希函数出错
- MSVC 编译器错误导致迭代器和友元函数出错
- 复制构造函数出错
- 使用 WinSock2 开发,使用 CreateThread() 函数出错
- 链接列表的Push_back函数出错
- 结构初始化中的隐式复制构造函数出错
- 异步函数出错
- 编译器错误消息错误:令牌之前的预期')' '*'。我的构造函数出错
- c++中使用std::bind和std::函数出错
- 在vector排序中使用c++模板函数出错
- 使用std::for_each lambda函数出错
- 二叉搜索树插入函数出错
- 调用类的函数出错
- c++使用删除函数出错
- 使用已删除的函数出错
- 调用构造函数出错