我有问题我需要从我的“数组”结构转换为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];
}
}
答案 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