如何初始化 类型是结构体的 vector?

时间:2022-10-24 19:50:00
大家好, 我定义了一个结构体:
typedef struct iRandom
{
int iVal[4];
}
iRandom;


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

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

谢谢大家

12 个解决方案

#1


用类吧,搞个构造函数

#2



话说vector里面都没元素 ,怎么初始..

#3


在C++中,不流行结构体,一般都是用类,在构造函数中初始化成员。

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

private:
    int iVal_[4];
}

把这样的类对象放在vector里面,成员就会被自动初始化。

#4



只有在结构体初始化,不是在vector初始

typedef struct iRandom
{
int iVal[4];
iRandom(){memset(iVal, 0, sizeof(int) * 4);}
}

#5


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

#6


引用 5 楼 gis_wudi 的回复:
iRandom i;
memset(&amp;i,0,sizeof(i));


++ memset就行了

#7


在C++里面 结构体也可以用构造函数,然后memset就好了,不过最好不要再c++里面换用C的东西,你可以在结构体里面也用vector

#8


说错了,是用类,然后里面用vector

#9


初始化函数或构造函数里,自己赋值

#10


#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;
}

#11


#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;
}

#12


学到了很多, 非常感谢

#1


用类吧,搞个构造函数

#2



话说vector里面都没元素 ,怎么初始..

#3


在C++中,不流行结构体,一般都是用类,在构造函数中初始化成员。

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

private:
    int iVal_[4];
}

把这样的类对象放在vector里面,成员就会被自动初始化。

#4



只有在结构体初始化,不是在vector初始

typedef struct iRandom
{
int iVal[4];
iRandom(){memset(iVal, 0, sizeof(int) * 4);}
}

#5


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

#6


引用 5 楼 gis_wudi 的回复:
iRandom i;
memset(&amp;i,0,sizeof(i));


++ memset就行了

#7


在C++里面 结构体也可以用构造函数,然后memset就好了,不过最好不要再c++里面换用C的东西,你可以在结构体里面也用vector

#8


说错了,是用类,然后里面用vector

#9


初始化函数或构造函数里,自己赋值

#10


#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;
}

#11


#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;
}

#12


学到了很多, 非常感谢