Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Двумерные массивы на С++

8.3K
03 октября 2006 года
Chuvak
40 / / 23.11.2005
Есть класс, елементом данных которого является динамический массив
(матрица), как объявить operator[], чтобы он принимал два параметра и
возвращал нужный елемент?

P.S. operator[] (int,int) не катит - ... must have one parameter...
Страницы:
3
16 октября 2006 года
Green
4.8K / / 20.01.2000
[QUOTE=cheburator]Нет. Сложение - по определению двухместная операция.[/QUOTE]
Ну это как посмотреть...

А разындексирование скольки "местная" операция?
Только учти, что даже вручную ты сначала ищешь столбец, а потом строку или наоборот, а не тыкаешь сразу в нужный элемент.
Кроме того в С++ нет операторов с неогранниченным числом аргументов, так сколько аргументов предусмотреть?
350
18 октября 2006 года
cheburator
589 / / 01.06.2006
[QUOTE=Green]Ну это как посмотреть...

А разындексирование скольки "местная" операция?
Только учти, что даже вручную ты сначала ищешь столбец, а потом строку или наоборот, а не тыкаешь сразу в нужный элемент.
Кроме того в С++ нет операторов с неогранниченным числом аргументов, так сколько аргументов предусмотреть?[/QUOTE]
Я уже предложил выход автору темы, и вообще для математических задач - передавать вектор в качестве агрумента. Хотя было бы очень неплохо, будь у С++ возможность непосредственно в операторе указывать произвольное количество параметров. А насчет того, что нет операторов с неограниченным числом параметров... Ну, скажем, оператор () сколько параметров может иметь? Думаю, не 2-3 - побольше? Ну дык пусть столько же и у []. И насчёт того, что я "ищу" сначала столбец, потом строку, или наоборот - ты абсолютно прав; так почему же первый оператор разындексации должен получать именно строку, а не столбец? Не возникнет ли путаница у человека, который укажет один оператор разындексирования - ведь может быть, по его-то логике он должен вернуть столбец? Потому-то и предлагается выделить получение столбцов и строк в отдельные методы.
...Зашёл на сайт ISO. Не понимаю, почему ISO ПРОДАЁТ стандарт С++ ISO/IEC 14882:2003 (http://www.iso.org/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=38110&ICS1=35&ICS2=60&ICS3=&scopelist=CATALOGUE) (стоимость 352 каких-то "CHF"), а не даёт скачать его бесплатно. Это так, лирическое отступление.
20K
24 октября 2006 года
Aumn
9 / / 24.10.2006
Когда то, в далекой юности, я тоже страдал "перегрузками операторов на C++", и еще всякой ерундой. Потом устроился на работу и писал на Java, притом очень много, долго и упорно порой до тошноты. А теперь смотрю как Вы ерундой занимаетесь, и не могу мимо пройти.

Гораздо проще не придумывать всякой ерунды, не изобретать летающие утюги, а сделать по тупому. Написать два метода:

 
Код:
...
template<class T>
class TWowThisIsTheMatrixBreakedByNeo { // :)
...
T getValue( const int i, const int j ) const {...}

void setValue( const int i, const int j, T value ) { ... }
...
};


И все дела. И просто и понятно и легко понять что это и ...
309
25 октября 2006 года
el scorpio
1.1K / / 19.09.2006
Цитата:

Гораздо проще не придумывать всякой ерунды, не изобретать летающие утюги, а сделать по тупому.


Тупо - один метод возвращает значение, другой его принимает. А если в качестве T выступает структура с набором полей под сотню байт размером :eek:
Для этого используют ссылки.
Повторю свой старый код.

 
Код:
T& Item (int I1, int I2); // Чтение изменяемого значения
const T& Item (int I1, int I2) const; Чтение константного значения
3
26 октября 2006 года
Green
4.8K / / 20.01.2000
Ну так человек из Java прищел, там ссылок в понимании C++ нет.
Хорошо, что не из Basic'a пришел нас поучать. :)
Спасибо, но мы как-нибудь по своему, а не "по тупому", т.к. привыкли к стандартному виду индексируемых контейнеров.

Кстати, а вот это const int i зачем?
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог