实现将堆栈数据赋值给多维数组,但输出的第一行都是堆栈的第一个值,请问是哪里出错了呢?

for (it = V.begin(); it != V.end(); it++)
    {
        int i, j;
        for (i = 0; i < 8; i++) {
            for (j = 0; j < 8192; j++) {
                swp[i][j] = *it;
                cout << "swp[]=" << swp[i][j] << endl;
            }
        }
}

 

那肯定是第一个值啊,你在堆栈循环里面套双循环,双循环里每次都是把堆栈的当前值进行赋值,这个值一直没改变啊

int i=0,j=0;
for (it = V.begin(); it != V.end(); it++)
{
	swp[i][j] = *it;
	j++;
	if(j == 8192)
	{
		i++;
		j=0;
	}
}
for(i=0;i<8;i++)
	for(j=0;j<8192;j++)
		cout << "swp[]=" << swp[i][j] << endl;

确保你的v容器中有多个值喔。

还有,你这种写法,外层for循环执行完毕后,swp数组里存储的所有元素都是一样的,都是存储v容器的最后一个值。

你可以先打印*it看看结果是什么嘛。

....但凡你愿意花10分钟把这3个循环走一遍也不至于特地来问......

真的...不是啥问题都需要花时间去网上问的.....

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632