Вот забавное c для (я полагаю) транспонирования матрицы, выполненной в качестве аргумента векторного конструктора копирования:
vector<vector<double>> tB(trans(B));
У меня здесь ошибка сегментации:
vector<vector<double>>& trans(vector<vector<double>>* matrix)
{
vector<vector<double>> result(matrix->size(), vector<double>(matrix->size(), 0.0)); <-- HERE
for (int i = 0; i < matrix->size(); ++i) {
for (int j = 0; j < matrix->size(); ++j) {
result.at(i).at(j) += matrix->at(j).at(i);
}
}
return result;
}
Не имеет значения, даже если я сделаю это:
vector<vector<double>>& trans(vector<vector<double>>* matrix)
{
vector<vector<double>> result; <-- AGAIN SIGSEGV ERROR
for (int i = 0; i < matrix->size(); ++i) {
vector.push_back(vector<double>(matrix->size(), 0.0));
for (int j = 0; j < matrix->size(); ++j) {
result.at(i).at(j) += matrix->at(j).at(i);
}
}
return result;
}