C++ C++;-未将预期输出获取到控制台
我是个白痴,我想知道为什么这个代码不打印“你好”?如果我注释掉vector.push_back(),它似乎打印C++ C++;-未将预期输出获取到控制台,c++,C++,我是个白痴,我想知道为什么这个代码不打印“你好”?如果我注释掉vector.push_back(),它似乎打印 #include <iostream> #include <vector> using namespace std; struct point { int x,y; point(int x, int y) : x(x), y(y) {} }; int main() { point coord(4,4); vector<vecto
#include <iostream>
#include <vector>
using namespace std;
struct point {
int x,y;
point(int x, int y) : x(x), y(y) {}
};
int main() {
point coord(4,4);
vector<vector<point>> v;
v[0].push_back(coord);
cout << "hello" << endl;
return 0;
}
#包括
#包括
使用名称空间std;
结构点{
int x,y;
点(intx,inty):x(x),y(y){
};
int main(){
point coord(4,4);
向量v;
v[0]。推回(坐标);
cout你的向量向量大小为0,其中绝对没有任何内容。因此,当你告诉一个不存在的向量用一些数据推回时,周围的内存会发生奇怪的事情。在这种情况下(如果我错了,请纠正我),您将跳过/覆盖包含要调用的指令的区域。如果您没有构造v[0]
,您只是给了一个不存在的实体一个命令。这是未定义的行为。v.at(0)。推回(coord);
将给出一个更有用的错误消息。
#include <iostream>
#include <vector>
using namespace std;
struct point {
int x,y;
point(int x, int y) : x(x), y(y) {}
};
int main() {
point coord(4,4);
vector<vector<point>> v;
v.push_back(vector<point>()); // need this one
v[0].push_back(coord);
cout << "hello" << endl;
return 0;
}