Форум программистов, компьютерный форум CyberForum.ru

Массив указателей списков смежных вершин - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Перевод из string в wstring. Неправильная кодировка http://www.cyberforum.ru/cpp-beginners/thread1062906.html
Здорова господа! Перевожу строку из string в wstring, в строке русские символы и они выводятся в консоли не крякозябрами а просто палочками. От код: #include <iostream> using std::wcout; using std::cout; using std::endl; #include <io.h>
C++ Алгоритм Дейкстры Что-то у меня Дейкстра не работает... прошу помощи у вас... Сам уже часа 1.5 сижу и не могу найти ошибку...#include <iostream> #include <cstring> #include <cmath> #include <stack> #include <queue> using namespace std; int n,m,a,s,f,p,h; bool used; int res; http://www.cyberforum.ru/cpp-beginners/thread1062900.html
C++ Шифрование методом цезаря
Здравствуйте, прошу вас о помощи. Это может показаться наглым, но, мне срочно нужна помощь с курсовым проектом, дело в том что с горем пополам я написал программу для шифрования методом цезаря, но меня ждал сюрприз, препод огорчил меня тем что нужно было делать все на билдере или подобие ему. Отправила на перездачу, а времени по просту не хватает, очень надеюсь на вашу помощь, нужна форма с...
Нужно заменить последнюю заглавную букву в строке на слово "Kukushechka" C++
То есть программа должна сама искать последнюю заглавную букву, определять ее номер в строке, ставить вместо нее и последующего текста слово "Kukushechka". В таком состоянии она только определяет номер и никак не хочет заменять. #include "stdafx.h" #include <conio.h> #include <stdio.h> #include <string.h> #include <iostream> using namespace std; char f( char *g, char* kuk);
C++ Странное поведение cin http://www.cyberforum.ru/cpp-beginners/thread1062879.html
Перегружаю оператор ввода следующим образом: #include <iostream> using namespace std; class Vector2D { public: long double x, y;
C++ Однонаправлений список. Операції: “[]” видалити елемент в заданій позиції, наприклад: int i; list L; L[i]; “[]” додати елемент в задану позицію, напр Помогите. Есть одна написаная. Условия: Черга. Операції: “+” додати елемент ; “-“ видалити елемент ; bool() перевірка «чи порожня черга?» В ней все работает, все запускается, не могу переделать на вот эту УСЛОВИЕ: Однонаправлений список. Операції: “” видалити елемент в заданій позиції, наприклад: int i; подробнее

Показать сообщение отдельно
__General__
24 / 24 / 3
Регистрация: 04.01.2014
Сообщений: 91
Завершенные тесты: 2
05.01.2014, 04:05     Массив указателей списков смежных вершин
Ну в add_el(...) я ошибок не нашел.
Единственное что - если вы хотите добавлять элементы в хвост списка, то было бы рационально помнить в самой структуре его хвост, чтобы не идти до последнего элемента каждый раз в цикле.
(В вашем случае добавление осуществляется за O(n), хотя можно за O(1)).
Ну или можно добавлять новые элементы в голову.

Теперь по поводу listMatrix().
Прежде всего, сразу бросается в глаза то, что тип возвращаемого значения не совпадает с объявленным типом функции: функция у вас имеет тип list**, а возвращаете вы *(first), то есть list*;
Потом, у вас ошибка при вызове add_el:
Цитата Сообщение от doorss Посмотреть сообщение
*(first[i])=add_el(*(first[i]),j);
first имеет тип list**, значит first[i] - list*, *(first[i]) - list. В то время как add_el - функция типа list*.
Собственно, у вас и в качестве аргумента add_elвыступает *(first[i]) вместо должного first[i].

Добавлено через 32 минуты
Ааа, я похоже неправильно понял. first у вас - массив указателей на указатель...
Короче, массив переменных типа list**, а не list*, как показалось мне сначала.
В таком случае, код, вроде, должен компилироваться.

Правда, я не совсем понимаю, зачем вы объявили такой массив... Вы, я так понял, хотите ,чтобы функция listMatrix() возвращала массив указателей на списки (то есть указатель на первый элемент массива, он же - его имя).
Однако, вы возвращаете первый(нулевой) элемент массива указателей на указатели на ваши списки, который не является указателем на первый элемент нужного массива.

PS
Сделайте first просто массивом указателей (list*).
Дальше подправьте все ,что нужно подправить (в конце тогда должно стоять просто
C++
1
return first
и тд).

ну как-то так...
 
Текущее время: 03:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru