【发布时间】:2020-07-14 10:44:56
【问题描述】:
我正在尝试在 C++ 中使用(学习)向量,因此我将其编写为一个简单的示例。但是我收到“分段错误:核心转储”的错误,我不知道错误在哪里以及是什么。有人可以解释一下,它是什么吗?
'''
struct Vertex {
int x,y,z;
};
std::ostream& operator<<(std::ostream& stream, const Vertex& vertex) {
stream << vertex.x << ", " << vertex.y << vertex.z;
return stream;
}
int main() {
std::vector<Vertex> vertices;
vertices.push_back({1,2,3});
for(int idx = 0; vertices.size(); idx++)
std::cout << vertices[idx] << std::endl;
}
'''
是否因为运算符重载(
【问题讨论】:
-
检查你的 for 循环条件。
-
看看range-based for loop,避免这样的错别字很有帮助
-
如何迭代 std::vector(不同方式):stackoverflow.com/questions/409348/…
-
当我使用 g++11 编译时,它编译正常 -- 编译正常意味着没有语法错误。它与程序是否存在逻辑错误无关,如果您仔细查看您的
for循环,它包含这样的错误。
标签: c++ vector segmentation-fault operator-overloading