c++ 数组怎么一次批量赋值
classA{
char*pname;
intproperty[5];
public:
voidipt(char*t,intpt[]){pname=t;
for(inti=0;i<5;i++)
property[i]=pt[i];
}
}
方法如下:
structAc{
char*pname;
intproperty[5];
}inita[2]={{"a",1,2,3,4,5},{"b",2,3,4,5,6}};
这样就可以调用ipt了:
Aa;
for(inti=0;i<2;i++)
a.ipt(inita[i].pname,inita[i].property[]);
扩展资料
C++中数组初始化
1、定义数组后必须要初始化,如果不初始化,局部变量在栈上,各数组元素的值将是随机数,系统不会自动初始化为0;
2、数组初始化时,把数组元素的第一个数组元素初始化为0,剩余的元素系统会自动初始化为0。如:
inta[5]={0}
3、初始化值的个数可少于数组元素个数,当初始化值的个数少于数组元素个数时,前面的按序初始化相应值,后面的初始化为0;
inta[5]={0,0}
4、在初始化时,如果指定的元素个数超过这个数组已经定义的大小,就会产生错误。如:
inta[3]={1,2,3,4,5}
5、若数组定义时没有指定大小,但初始化采用列表初始化了,那么数组的大小由初始化时列表元素个数决定。如:
inta[]={1,2,3,4,5}
推荐于2017-10-04 · 知道合伙人数码行家
#include <iostream>
#include <vector>
using namespace std;
void main()
{
vector<int>ivec1(10,42); //内置方法,初始化的内容为10个42
vector<int>ivec2(10);
vector<int>::size_type ix=0;
for(ix;ix<10;++ix)
{
ivec2[ix]=42; //下标操作
}
vector<int>ivec3(10);
for(vector<int>::iterator iter=ivec3.begin();iter!=ivec3.end();++iter)
{
*iter=42; //迭代器
}
/////下面两种方法最佳,他们使用标准库定义的操作,无须再定义vector对象时指定容器的大小。比较灵活且不容易出错.
vector<int>ivec4;
vector<int>::iterator iter=ivec4.end();
for(int i=0;i!=10;++i)
{
ivec4.insert(iter,42); //在指定位置iter前插入值为的元素,返回指向这个元素的迭代器,
iter=ivec4.end();
}
vector<int>ivec5;
vector<int>::size_type cnt=1;
for(cnt;cnt<=10;++cnt)
{
ivec5.push_back(42); //push_back()添加值为的元素到当前vector末尾
}
}
2016-01-15 · 知道合伙人互联网行家
#include <iostream>
#include <vector>
using namespace std;
void main()
{
vector<int>ivec1(10,42); //内置方法,初始化的内容为10个42
vector<int>ivec2(10);
vector<int>::size_type ix=0;
for(ix;ix<10;++ix)
{
ivec2[ix]=42; //下标操作
}
vector<int>ivec3(10);
for(vector<int>::iterator iter=ivec3.begin();iter!=ivec3.end();++iter)
{
*iter=42; //迭代器
}
/////下面两种方法最佳,他们使用标准库定义的操作,无须再定义vector对象时指定容器的大小。比较灵活且不容易出错.
vector<int>ivec4;
vector<int>::iterator iter=ivec4.end();
for(int i=0;i!=10;++i)
{
ivec4.insert(iter,42); //在指定位置iter前插入值为的元素,返回指向这个元素的迭代器,
iter=ivec4.end();
}
vector<int>ivec5;
vector<int>::size_type cnt=1;
for(cnt;cnt<=10;++cnt)
{
ivec5.push_back(42); //push_back()添加值为的元素到当前vector末尾
}
}
#include <string.h>
void * memset ( void * ptr, int value, size_t num );
如:
int a[M][N];
memset(a[0],0,N*sizeof(int)); //第一行赋值0
memset(a[1],1,N*sizeof(int)); //第二行赋值1
int a[20]={ 0 };
如此,整个数组都为0了,但是以后就不能这样赋值了,只能在刚看时初始化的时候这样!