我是堆叠溢出和编码的新手。目前,我正在开发一种算法。在那里我使用compile project
类型对象会说它是 a 。我正确地将支持的值推送到该向量中。我通过for循环测试了这些值,如下所示
vector<vector<double>>
但是当我传递给 a libarary时,我会收到Segmentation fault Error。
然后我从
的输出中创建了如下b vector<vector<double>> a = getValuesofA(); //
// The test loop
for (unsigned int i = 0; i < a.size(); i++) {
for (unsigned int y = 0; y < a.at(i).size(); y++) {
double x = a.at(i).at(y);
std::cout << x << " ";
}
std::cout << std::endl;
}
// Out put
0.278805 0 0 0 0
0 0 0 0 0
0 0.00838826 0 0 0
0 0.276585 0 0 0
当我将b传递给同一个库时,我没有收到错误。结果如预期。 我不知道a和b之间有什么区别。任何帮助表示赞赏。谢谢。
答案 0 :(得分:0)
for (auto &m : a) {
for (auto &n : m) {
所以m得到一个指向vector的指针,n得到一个指向double的指针。但是,在“b”中,双精度是指针,它们是值。简而言之,我怀疑如果你可以让它工作,你的图书馆将会起作用:
for (auto &m : a) {
for (auto n : m) {
请注意缺少的“&amp;”。