2012-04-03 2 views
0

У меня проблема: мне нужно преобразовать из моей структуры «Array» в std::vector<int> ... точка в том, что у меня есть динамическая матрица, целью которой является база данных. Но в какой-то момент мне нужно переместить некоторые значения из «Массив» в вектор. и я получаю ошибку поляПреобразование типа Struct to vect 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

Выводится сообщение об ошибке говорит о том, что вы делаете что-то вроде VEC [0] .days или так, что не может работать, потому что vec содержит ints. Покажите нам код, который вы используете для доступа и преобразования вашей структуры, и, возможно, кто-то сможет помочь. –

+0

Не могли бы вы уточнить, что вы хотите сделать? Вы хотите знать, как объявить вектор? Или вы заинтересованы в передаче значений из массива стилей C в вектор? – Jaywalker

+0

добавил, что я должен работать –

ответ

2

Ваш 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

+0

Я добавил код, я пытаюсь добавить некоторые из моего int в vec .. учитывая, что я обращаюсь к одному int shoulden't, он работает? btw i'm не знаком с концепцией push_back ... можете ли вы объяснить/соединить его со мной –

Смежные вопросы