vector::push_back не хочет работать с моим классом :(
От: Аноним  
Дата: 14.10.05 08:28
Оценка:
Во время выполнения программы:

#include <iostream>
#include <vector>

using namespace std;

template <class T> int findInArr (T arr[], T val)
{
for (int i = 0; arr[i]; i++)
if (arr[i] == val)
return i;
return -1;
}

char* keys[] = {
"1",
"2",
0
};

class TAsArr {
public:
char* *keys;
unsigned int size;
int *values;
TAsArr (char* keys[] = 0)
{
size = 0;
if (keys)
assign (keys);
}
void assign (char* keys[])
{
if (size)
delete [] values;
for (size = 0; keys[size]; size++);
this->keys = keys;
values = new int[size];
}
~TAsArr ()
{
if (size)
delete [] values;
}
int& operator[] (char* key)
{
int s = size ? findInArr (keys, key) : -1;
if (s != -1)
return values[s];
//error ("Ключ не найден.");
}
};

void main ()
{
int i;
vector<TAsArr> a1;
a1.push_back (TAsArr (keys));
cin >> i;
}

вылетает ошибка. Обьясните пожалуйста в чем дело.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.