проблемма с двумерным массивом (Массив int`ов с строковыми )

Модераторы: Romeo, Hawk, Absurd, WinMain, DeeJayC

Ответить
Drizo
Сообщения: 4
Зарегистрирован: 07 июн 2005, 10:23
Контактная информация:

проблемма с двумерным массивом (Массив int`ов с строковыми )

Сообщение Drizo » 07 июн 2005, 10:58

уже 2 недели.
задачка (на с++, MFC) стоит такая: под каждым строковым индексом (который содержит числа, но не по порядку, мне строкам удобнее) будет находится массив int`ов (размер не постоянной, да и приложение будет большое, по этому ручками[динамически] ооочень накладно). Т.е. :

Код: Выделить всё

CArray <int,int> cr;	
CMap <CString,CString,cr,CArray> tbl;
Но в ответ:
  • 'DrFunc::cr' : is not a type name, static, or enumerator
  • 'cr' : undeclared identifier
  • 'CMap' : use of class template requires template argument list
Люди, подскажите ПЛЗ как мне быть. Может ещё какой способ есть (кроме динамики)

Заранее псибки Dizzy(Odessa). :o ops:

Absurd
Сообщения: 1213
Зарегистрирован: 26 фев 2004, 13:24
Откуда: Pietari, Venäjä
Контактная информация:

Сообщение Absurd » 07 июн 2005, 11:35

CMap<CString,CString&,CArray<int,int&>,CArray<int,int&>& > tbl;
2B OR NOT(2B) = FF

Drizo
Сообщения: 4
Зарегистрирован: 07 июн 2005, 10:23
Контактная информация:

Сообщение Drizo » 07 июн 2005, 13:44

Спасибо огромное за внимание, но всё раво НЕ работает. на этот раз я написал:

Код: Выделить всё

CArray <int,int&> cr;	
CMap<CString,CString&,CArray<int,int&>,CArray<int,int&>&> tbl;
а в ответ:
  • 'operator =' function is unavailable in 'CArray<TYPE,ARG_TYPE>'
  • while compiling class-template member function 'void CMap<KEY,ARG_KEY,VALUE,ARG_VALUE>::SetAt(ARG_KEY,ARG_VALUE)'
и ещё много в таком же духе ссылаясь на код в afxtempl.h[/code]

Absurd
Сообщения: 1213
Зарегистрирован: 26 фев 2004, 13:24
Откуда: Pietari, Venäjä
Контактная информация:

Сообщение Absurd » 07 июн 2005, 15:12

Код: Выделить всё

template<class T>
class CArrayHolder {
  CArray<T,T&> m_array;
public:
  CArrayHolder(const CArrayHolder<T>& ah) {
    m_array.Copy(ah.m_array);
  }

  CArrayHolder(const CArray<T,T&>& array) {
    m_array.Copy(array);
  }

  CArrayHolder<T>& operator=(const CArrayHolder<T>& ah) {
    m_array.Copy(ah.m_array);
    return *this;
  }

  CArrayHolder<T>& operator=(const CArray<T,T&>& array) {
    m_array.Copy(array);
    return *this;
  }
  
  CArray<T,T&>& get(){
    return m_array;
  }
  
   const CArray<T,T&>& get() const {
    return m_array;
  }
}
CMap<CString,CString&,CArrayHolder<int>,CArrayHolder<int>&> tbl
2B OR NOT(2B) = FF

Ответить