Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

Продолжаем: как лучше реализовать [] ?

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
Yello



Зарегистрирован: 09.03.2006
Сообщения: 107

СообщениеДобавлено: Ср Окт 04 2006 09:49    Заголовок сообщения: Продолжаем: как лучше реализовать [] ? Ответить с цитатой

Цитата:
Многое зависит от того как Вы создаете эти классы. Например, я бы (программирую на Java) делал их неизменяемыми объектами.

Да, действительно, ПОЧТИ ВСЕ функции получают аргументы типа CONST polynom&, ПОЭТОМУ – вопрос: как рационально (по скорости) реализовать ПАРАЛЛЕЛЬНЫЙ доступ к элементам списка? Это должно быть нечто вроде: сначала формируем массив указателей на элементы списка, затем работаем с ними (операция []), затем (в конце) удаляем этот массив.
А вопрос – как такое реализовать? Как я понимаю, помимо операции [], д.б. ещё две функции (первая формирует массив, вторая удаляет). А как передать в «ф-ю []» указатель на ЭТОТ массив? Делать в базовом контейнере ещё одно поле (для этого «врЕменного» указателя) не хотелось бы. Или вообще можно сделать оператор [], в реализацию которого «встроены» эти две ф-и (использовать static, но как узнать, когда этот массив уже можно удалять?).
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Kefir



Зарегистрирован: 16.04.2005
Сообщения: 443
Откуда: Пермь

СообщениеДобавлено: Чт Окт 05 2006 06:24    Заголовок сообщения: Ответить с цитатой

Использовать [] не лучшая идея, прежде всего поскорости. В Java есть такая штука как итераторы, которые организуют последовательный доступ к элементам списка. Наверное в STL они тоже есть. В Java все красиво и элегантно, за удаление ненужных объектов отвечает сборщик мусора.
_________________
Самоловских Виталий aka Kefir
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
kolobok0



Зарегистрирован: 22.04.2005
Сообщения: 253
Откуда: Мсква

СообщениеДобавлено: Чт Окт 05 2006 12:10    Заголовок сообщения: Ответить с цитатой

Kefir писал(а):
Использовать [] не лучшая идея, прежде всего поскорости. ....


если речь идёт о сях (либо си плас плас - пофигу) то глупости говорите...взятие элемента из массива есть перемножение размерности одного элемента на индекс. В защищённом режиме - это одна, две команды на азме... куда уж быстрее ?? (На яве это к примеру будет несколько десятков а то и сотен - почуствуйте разницу!!!)


(круглый)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Kefir



Зарегистрирован: 16.04.2005
Сообщения: 443
Откуда: Пермь

СообщениеДобавлено: Чт Окт 05 2006 15:32    Заголовок сообщения: Ответить с цитатой

kolobok0 писал(а):
Kefir писал(а):
Использовать [] не лучшая идея, прежде всего поскорости. ....


если речь идёт о сях (либо си плас плас - пофигу) то глупости говорите...взятие элемента из массива есть перемножение размерности одного элемента на индекс. В защищённом режиме - это одна, две команды на азме... куда уж быстрее ?? (На яве это к примеру будет несколько десятков а то и сотен - почуствуйте разницу!!!)


(круглый)

Я имел ввиду переопределение оператора [] для списка
_________________
Самоловских Виталий aka Kefir
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
kolobok0



Зарегистрирован: 22.04.2005
Сообщения: 253
Откуда: Мсква

СообщениеДобавлено: Пт Окт 06 2006 11:52    Заголовок сообщения: Ответить с цитатой

Kefir писал(а):
...Я имел ввиду переопределение оператора [] для списка


дык сам метод дёргается так же (не быстрее не медленнее)...а всё остальное зависит от реализации...

(круглый)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Yello



Зарегистрирован: 09.03.2006
Сообщения: 107

СообщениеДобавлено: Пт Окт 06 2006 11:57    Заголовок сообщения: Ответить с цитатой

Цитата:
Я имел ввиду переопределение оператора [] для списка

И мы имели ввиду это же самое.
Мне нужно, чтобы [] обеспечивал именно ПАРАЛЛЕЛЬНЫЙ доступ к элементам списка (тогда: алгоритм сложения двух полиномов будет выглядеть совсем по-другому, нежели при использовании только последовательного доступа, и вычислительная сложность даже с учётом предварительного формирования МАССИВА УКАЗАТЕЛЕЙ стала бы НАМНОГО меньше. И ещё много других "вкусностей").

Как сделать параллельный доступ к элементам СПИСКА ? - формировать (сначала) массив указателей на все контейнеры (а как ещё?). А в конце этот массив надо удалить. И вопрос в лишь том, как "элегантнее" это реализовать на С++.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
kolobok0



Зарегистрирован: 22.04.2005
Сообщения: 253
Откуда: Мсква

СообщениеДобавлено: Пт Окт 06 2006 18:12    Заголовок сообщения: Ответить с цитатой

Yello писал(а):
...Как сделать параллельный доступ к элементам СПИСКА ? ...


map от STL чем не подходит ?

(круглый)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Yello



Зарегистрирован: 09.03.2006
Сообщения: 107

СообщениеДобавлено: Пт Окт 06 2006 22:50    Заголовок сообщения: Ответить с цитатой

Потому что не знаю наверняка, каким способом оно там реализовано (если не совсем так, то никакого прироста в скорости я не получу, даже наоборот). Короче, я решил – не буду выпендриваться, вместо [] - сделаю функцию monom get(polynom& p, unsigned int number, pcont **parray), и всё.
В-общем, всем спасибо.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...