如何初始化 类型是结构体的 vector?
大家好, 我定义了一个结构体:
typedef struct iRandom{ int iVal[4];}iRandom;话说vector里面都没元素 ,怎么初始..
[解决办法]
在C++中,不流行结构体,一般都是用类,在构造函数中初始化成员。
class iRandom
{
public:
iRandom() { memset(iVal, 0, sizeof(int) * 4); }
private:
int iVal_[4];
}
把这样的类对象放在vector里面,成员就会被自动初始化。
[解决办法]
只有在结构体初始化,不是在vector初始typedef struct iRandom{ int iVal[4]; iRandom(){memset(iVal, 0, sizeof(int) * 4);}}
[解决办法]
#include <iostream>using namespace std;typedef struct iRandom{ int iVal[4];}iRandom;int main(){ int a[4] = {0, 1, 2, 3}; struct iRandom r; for(int i = 0; i < 4; i++) r.iVal[i] = a[i]; for(int i = 0; i < 4; i++) cout << r.iVal[i] << endl; system("pause"); return 0;}
[解决办法]
#include <iostream>using namespace std;typedef struct iRandom{ int iVal[4];}iRandom;int main(){ /*int a[4] = {0, 1, 2, 3};*/ struct iRandom r; //for(int i = 0; i < 4; i++) //r.iVal[i] = a[i]; memset(&r, 0, sizeof(iRandom)); for(int i = 0; i < 4; i++) cout << r.iVal[i] << endl; system("pause"); return 0;}