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;
}
вылетает ошибка. Обьясните пожалуйста в чем дело.
Пока на собственное сообщение не было ответов, его можно удалить.