c++ 数组怎么一次批量赋值

比如二维数组的某一行全部赋为某数。不用循环。比如二维数组的某一行全部赋为某数(比如0)... 比如二维数组的某一行全部赋为某数。不用循环。
比如二维数组的某一行全部赋为某数(比如0)
展开
 我来答
爱教育爱学习
高粉答主

2019-11-13 · 学而不思则罔,思而不学则殆
爱教育爱学习
采纳数:386 获赞数:112705

向TA提问 私信TA
展开全部

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}

精品DIY生活
推荐于2017-10-04 · 知道合伙人数码行家
精品DIY生活
知道合伙人数码行家
采纳数:46447 获赞数:131767
视频剪辑、网络管理、图片处理、办公自动化、文学、语言学。

向TA提问 私信TA
展开全部
通过数组指针给对象赋值:
#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末尾
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
m2ah
2016-01-15 · 知道合伙人互联网行家
m2ah
知道合伙人互联网行家
采纳数:9119 获赞数:28047
毕业于软件技术专业,12年网站建设程序开发经验,多家知名公司网站维护专家,百度资深行家。

向TA提问 私信TA
展开全部
通过数组指针给对象赋值:
#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末尾
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友5e2c30c6c
推荐于2017-09-16 · TA获得超过815个赞
知道小有建树答主
回答量:289
采纳率:0%
帮助的人:466万
展开全部
可以用memset
#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
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
weida爱问
2011-09-28 · TA获得超过2427个赞
知道小有建树答主
回答量:1345
采纳率:72%
帮助的人:873万
展开全部
定义的时候可以批量赋值,如:
int a[20]={ 0 };
如此,整个数组都为0了,但是以后就不能这样赋值了,只能在刚看时初始化的时候这样!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式