【发布时间】:2016-12-22 18:35:58
【问题描述】:
当我尝试运行此程序时,此部分会导致分段错误:
std::vector<double> dist1(dist);
dist1.erase(std::remove(dist1.begin(), dist1.end(), 0), dist1.end());
max = *std::max_element(dist1.begin(),dist1.end());
min = *std::min_element(dist1.begin(),dist1.end());
使用 max_element() 和 min_element() 会导致分段错误,但我不明白为什么。我在这里所做的是将向量“dist”复制到“dist1”,删除新向量中所有出现的“0”,然后从“dist”、“max”和“min”中的剩余项目中搜索最小值和最大值" 是先前声明的双精度类型变量。 "dist" 之前声明为
std::vector<double> dist; //vector used to hold the distances between adjacent vertices
dist.resize(size);
代码在 Linux 服务器上使用 g++ 编译。请指教。
【问题讨论】:
-
如果每个编译成功的代码都自动没有错误,那我就失业了。
标签: c++ stl segmentation-fault std