Я пытаюсь сделать матричный граф с cpp, и получается, что это довольно chalange. Таким образом, чтобы сделать матрицу я использую tewo вложенных векторов:Случайное значение, исходящее из ниоткуда с вектором
class Graph{
private:
vector<vector<int> > matr;
int number_vertc;
public:
Graph(int = 0);
void print_graph();
};
После этого в файле CPP у меня есть это:
void Graph::print_graph(){
cout << "----------------------------" << endl;
for(int i=0;i<number_vertc;i++){
for(int j=0; j < number_vertc; j++){
cout << matr[i][j];
cout << "|";
}
cout << "|" << endl;
}
}
Graph::Graph(int n){
number_vertc=n;
matr.resize(n);
for(int i=0;i<=n;i++){
matr[i].resize(n);
}
}
С первой функции я стремлюсь напечатать матрицу, которая в вне случае всегда должен быть содержащий 0 и почти делает, но вот результат:
[email protected]:~/documents/github/fmi-fall-2016/dm/graphs/cpp> make
g++ -c main.cpp
g++ -c graph.cpp
g++ main.o graph.o -o output
[email protected]:~/documents/github/fmi-fall-2016/dm/graphs/cpp> ./output
ahdhasd
----------------------------
53|0|0|0|0||
0|0|0|0|0||
0|0|0|0|0||
0|0|0|0|0||
0|0|0|0|0||
по какой-то причине первое значение матрицы составляет 53, почему это происходит и как это исправить?
PS. это не полный код, чтобы увидеть все, проверить это:
https://github.com/martin-varbanov96/fmi-fall-2016/tree/master/dm/graphs/cpp
пожалуйста ** производство ** [mcve]. Я не буду обращаться к внешнему источнику, чтобы исследовать вашу проблему. По теме: вы пробовали переходить через свой код с помощью отладчика? –
Возможно, это не проблема, но в 'Graph :: Graph()', 'i <= n' должно быть' i
aschepler
Спасибо, асеплер, в этом была проблема, добавьте aswer – Harton