#include <vector>
#include <iostream>
using namespace std;
#pragma pack(1)
typedef struct
{
int key;
vector<int> data;
}Element;
#pragma pack()
int Cmp(const void *x, const void *y)
{
return ((Element*)y)->key - ((Element*)x)->key;
}
vector<Element> Sort( vector<Element> v )
{
qsort((void *)&v[0],v.size(),sizeof(Element),Cmp);
return v;
}
int main( )
{
vector<Element> v1;
vector<int> v2;
v2.push_back(1);
v2.push_back(2);
Element temp = {0};
temp.key = 1;
temp.data = v2;
v1.push_back(temp);
temp.key = 2;
v1.push_back(temp);
v1 = Sort(v1);
//temp = v1[0];
//v1[0] = v1[1];
//v1[1] = temp;
vector<int> v3;
v3.assign(v1[0].data.begin(),v1[0].data.end());
return 0;
}
在自己写一个小游戏的时候遇到了一个问题,源代码如上,经过了简化。
发现在vs2010里面运行如下代码的Debug版本,会提示
Debug Assertion Failed
Expression:vector ite