Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно
pva pva вне форума

Аватара для pva

Ветеран


Сообщения: 1180
Благодарности: 279

Профиль | Отправить PM | Цитировать


ещё варианты (если надо всё-таки с матрицей):
Код: Выделить весь код
// 1
element& matr::operator()(col, row)
// 2
element& matr::operator[](std::pair<unsigneed,unsigned>)
// 3 ничего не перегружать, держать массив из указателей element*,
// тогда легко менять местами строчки
struct matr
{
  vector<element> _memory;
  vector<element*> _rows;

  element* operator[](unsigned n) {return rows[n];}
  ...
}
// использовать классы прокси
struct matr_proxy1_t
{
   matr& m;
   unsigned arg1;
   matr_proxy1_t(matr&,unsigned);
   element& operator[](unsigned arg2) {return m.get(arg1, arg2);}
}
struct matr
{
  matr_proxy1_t operator[](unsigned arg1) {return matr_proxy1_t(*this,arg1);}
}
а ещё можно воспользоваться уже готовыми классами valarray. Какая задача то стоит?
Это сообщение посчитали полезным следующие участники:

Отправлено: 10:23, 28-03-2009 | #3