Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 0
Регистрация: 04.11.2019
Сообщений: 1
1

Там где написано w = q.pop(); ошибка невозможно преобразовать void и int. Что делать?

04.11.2019, 19:21. Просмотров 323. Ответов 1
Метки нет (Все метки)


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#include <iostream>
#include <queue>
 
using namespace std;
 
int main()
{
    int n, s, f, i, j, ans[10][10], used[10], dist[10], m, w, mindist;
    const int inf = 500;
    cin >> n >> s >> f;
    for (i = 1; i <= n; i++) {
        used[i] = 0;
        dist[i] = inf;
        for (j = 1; j <= n; j++) {
            ans[i][j] = inf;
        }
    }
    ans[s][s] = 0;
    for (i = 1; i <= n; i++) {
        for (j = 1; j <= n; j++) {
            cin >> m;
            if (m != 0) {
                ans[i][j] = m;
                dist[i] = m;
            }
        }
    }
    queue<int> q;
    q.push(s);
    dist[s] = 0;
    used[s] = 1;
    mindist = ans[s][f];
    while (!q.empty()) {
        w = q.pop();
        for (j = 1; j <= n; j++)
        {
            if (used[j] == 0 && ans[w][j] < mindist)
            {
                dist[j] = dist[w] + ans[w][j];
                if (j == f && dist[j] < mindist) mindist = dist[j];
                    q.push(j);
                used[j] = 1;
                ;
            }
        }
    }
    if (mindist == inf) 
        cout << "-1";
    else 
        cout << mindist;
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.11.2019, 19:21
Ответы с готовыми решениями:

Что делать с ошибкой: C2440: инициализация: невозможно преобразовать "int **" в "int *"
Задание, сделать класс динамического массива шаблонным. Вот, вроде бы сделал, но наткнулся на...

Ошибка линкера: ссылка на неразрешенный внешний символ "public: int __thiscall stack<int>::pop(void)"
Всем привет! Возникает ошибка: error LNK2019: ссылка на неразрешенный внешний символ &quot;public: int...

Ошибка что то типа не объявленный идентификатор,и типа невозможно преобразовать CStringW в там что..то
Даже не знаю как сказать... короче есть база а Access,которую я подключил к проекту MFC,и в этой...

Ошибка в переменных: Невозможно преобразовать "void *" в "int **"
после компиляции выдает ошибку: error C2440: =: невозможно преобразовать &quot;void *&quot; в &quot;int **&quot; 1&gt; ...

1
1354 / 992 / 314
Регистрация: 28.07.2012
Сообщений: 2,750
04.11.2019, 19:32 2
Цитата Сообщение от erdyneev Посмотреть сообщение
Что делать?
Прочитать документацию. pop просто удаляет элемент из очереди, ничего не возвращая. Для получения значения (без удаления) есть метод front.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.11.2019, 19:32

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Сортировка подсчетом и ошибка "Невозможно преобразовать "void*" в "int*"
Мне нужно отсортировать одномерный массив с помощью алгоритма сортировки, однако возникает ошибка...

Ошибка error C2440: инициализация: невозможно преобразовать 'int' в 'int []'
// ConsoleApplication9.cpp: определяет точку входа для консольного приложения. // #include...

Ошибка: Невозможно преобразовать 'int' в 'nodeColor'
Выпадает вот такая ошибка на 177 и 220 строчке( color = yPtr-&gt;color; ): error C2440: =: невозможно...

Ошибка: невозможно неявно преобразовать int в byte
char I = 'I'; char one = '1'; byte i = Convert.ToByte(I); ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.