将Struct类型转换为vect int

时间:2012-04-03 13:30:16

标签: c++ data-structures type-conversion

我有问题我需要从我的“数组”结构转换为std::vector<int> ...重点是我有一个动态矩阵,目的是数据库。但在某些时候我需要将一些值从'Array'移动到一个向量。我得到了一个错误的错误

 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:

 vector <int> vec(31);

编辑:

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 个答案:

答案 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循环,然后调用push_back将每个项目放入vector