C++ 里vector的使用,运行时出错,请问怎么解决??
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ 里vector的使用,运行时出错,请问怎么解决??相关的知识,希望对你有一定的参考价值。
#include <iostream>
#include <vector>
using namespace std;
class A
public:
vector<int> getVector()
return list;
private:
vector<int> list;
;
void pushNum(A* a)
a->getVector().push_back(1);
cout << a->getVector().at(0) << endl;
int main()
A a = A();
pushNum(&a);
cout << a.getVector().at(0) << endl;
return 0;
程序运行时出错,怎么解决?求解!
所以,void pushNum(A* a)中:
第一行,a->getVector()创建一个vector<int>临时变量,临时变量调用push_back(1),list仍为空,之后临时变量销毁;
第二行,a->getVector()创建另一个vector<int>临时变量,由于list为空,该临时变量亦为空,之后临时变量调用at(0)越界出错。追问
老师不好意思现在没办法上机调试,如果把函数getVector()改为return &list是否就正确了
本回答被提问者采纳 参考技术B #include <iostream>#include <vector>
using namespace std;
//
class A
public:
vector<int> getVector()
return list;
void pushNum(int num)
this->list.push_back(num);
cout << this->list.at(0) << endl;
private:
vector<int> list;
;
//
int main()
A a = A();
a.pushNum(12);
cout << a.getVector().at(0) << endl;
return 0;
追问
不好意思 ,我问的问题目的是解决关于vector对象作为值得传递问题。不是单纯完成上述代码的功能。
以上是关于C++ 里vector的使用,运行时出错,请问怎么解决??的主要内容,如果未能解决你的问题,请参考以下文章
你好。请问这个VHDL程序的测试程序要如何写?要在modelsim里运行的。。
C++请问ShowWindow(hwnd,nCmdShow)和ShowWindow(hwnd,iCmdShow)的区别是啥?