Помогите, пожалуйста, решить проблему. Не знаю, как записать и в сети найти не получается. В main инициализирован объект класса DijkstraAlgorythm, в самом классе есть поле int isOriented, которому присваивается значение:
int main() {
DijkstraAlgorythm object;
object.isOriented = 1;
В самом классе:
class DijkstraAlgorythm {
public:
int isOriented;
struct Graph
{
vector<vector<int>> matrix;
Graph(int size)
{
matrix.resize(size);
for (int i = 0; i < size; i++)
matrix[i].resize(size, infinity);
}
void set_edge(int id1, int id2, int cost)
{
matrix[id1][id2] = cost;
if (isOriented == 0)
matrix[id2][id1] = cost;
}
};
Идея такая: если isOriented = 0, то граф неориентированный и стоимость прохода до вершин устанавливается туда-обратно одинаковая, если ориентированный - только в одну сторону. Как в структуру Graph вытащить значение переменной isOriented? Заранее большое спасибо.
Дело в том, что int isOriented
является членом другого класса. Хотя и Graph
является вложенной структурой, но она не может использовать член, принадлежащий обьекту другого типа. Вам нужно хранить в Graph
указатель(ссыльку) на обьект DijkstraAlgorythm
, и через него использовать его член isOriented
или сделать(что логичнее) isOriented
статическим. И как замечание: будет понятнее и уместнее, если он будет булевским обьектом, а не целочисленного типа, и не вижу смысла вложенной структуры, доступной всем. Теряется смысль вложенности
Виртуальный выделенный сервер (VDS) становится отличным выбором
Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском
Мучает вопрос с анимацией(примеры ниже), никак не могу найти в интернете, может неправильно ищуМне никак не понятно каким образом всё это...