Преобразовать тип структуры в vect int - PullRequest
0 голосов
/ 03 апреля 2012

У меня проблема, мне нужно преобразовать структуру "Array" в std::vector<int> ... дело в том, что у меня есть динамическая матрица, целью которой является база данных. Но в какой-то момент мне нужно переместить некоторые значения из массива в вектор. и я получаю следующую ошибку

 c:\mingw\bin\../lib/gcc/mingw32/4.6.1/include/c++/bits  /stl_iterator_base_types.h:166:53: error: 'int' is not a class, struct, or union type

Кто-нибудь знает, как этого добиться?

структура:

const int days=31;
const int exp=6;

struct Arr{
    int days;
    int exp;
    int **M;
};
typedef Arr* Array;

вектор:

 vector <int> vec(31);

EDIT:

int dayExp(int day, Array &M){
    int s=0;
    for(int i=0;i<6;i++){
        s += M->M[day][i];
    }
    return s;
}

void srtDesc(Array &M){
    vector <int> vec(31);
    for(int i=0;i<31;i++){
        vec[i]=dayExp(i, M);
    }
    sort(vec[0],vec[1]);

    for(int i=0;i<31;i++){
        cout<< vec[i];
    }
}

1 Ответ

2 голосов
/ 03 апреля 2012

Ваша Arr структура неявно не преобразуется в int.Прежде всего, ваша структура содержит 3 int типа, тогда как vector<int> - это один int за раз.

Если вы хотите поместить Arr в vector, вам следуетсоздайте std::vector<Arr> и затем вызовите push_back, чтобы поместить в него ваши Arr структуры.

std::vector<Arr> myvec;

myvec.push_back(someArr);

Вам потребуется создать цикл for, который проходит по длине - 1 вашегомассив и вызывает push_back, чтобы поместить каждый элемент в vector

...