读书人

怎么初始化 类型是结构体的 vector

发布时间: 2012-03-17 19:06:28 作者: rapoo

如何初始化 类型是结构体的 vector?
大家好, 我定义了一个结构体:

C/C++ code
typedef struct iRandom{    int iVal[4];}iRandom;


然后想这样: vector <iRandom> templateStipples(0);就是在申明这中vector的时候把vector里面的 每个结构体里面的 每个数据都初始化为零. 也就是把所有的 iVal[0], iVal[1], iVal[2], iVal[3] 都初始化为 0

这个如何做? 貌似我只写个 0 不对

谢谢大家

[解决办法]
用类吧,搞个构造函数
[解决办法]
C/C++ code
话说vector里面都没元素 ,怎么初始..
[解决办法]
在C++中,不流行结构体,一般都是用类,在构造函数中初始化成员。

class iRandom
{
public:
iRandom() { memset(iVal, 0, sizeof(int) * 4); }

private:
int iVal_[4];
}

把这样的类对象放在vector里面,成员就会被自动初始化。
[解决办法]
C/C++ code
只有在结构体初始化,不是在vector初始typedef struct iRandom{    int iVal[4];    iRandom(){memset(iVal, 0, sizeof(int) * 4);}}
[解决办法]
探讨

iRandom i;
memset(&i,0,sizeof(i));

[解决办法]
在C++里面 结构体也可以用构造函数,然后memset就好了,不过最好不要再c++里面换用C的东西,你可以在结构体里面也用vector
[解决办法]
说错了,是用类,然后里面用vector
[解决办法]
初始化函数或构造函数里,自己赋值
[解决办法]
C/C++ code
#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;}
[解决办法]
C/C++ code
#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;} 

读书人网 >C++

热点推荐