如何为表格,二维数组或多维数组的所有元素设置或初始化默认值 [英] how to set or initialize default value for all elements of a table or 2d array or multdimentional array

查看:141
本文介绍了如何为表格,二维数组或多维数组的所有元素设置或初始化默认值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想为表或2d数组的所有元素设置默认的非零值. array [size] = {12}设置第一个元素仅12个,其他元素都连续为0.但是fill(array,array + size,12)只能将所有元素连续设置为12个. 2d数组.是否有任何方法可以使用fill()进行操作,或者没有使用double for循环直接初始化的任何方法

I want to set a default nonzero value for all elements of a table or 2d array. array[size]={12} sets first elements only 12 and others are all 0 in a row.But fill(array,array+size,12) sets all elements to 12 in a row only.I could't apply this for 2d array.Is there any way to do this using fill() or any way without direct initialization using double for loop

#include <iostream>
#include<algorithm>
#include<vector>
#include<stdlib.h>
using namespace std;

int main()
{
   int arra[10][10];//declare 2d array

  for(int k=0;k<10;k++)//takes k's value 10 for 10 rows
     fill(arra,arra+10,45);//select a row and set all columns to 45 didn't work

}

数组初始化 http://www.fredosaurus.com/notes-cpp/arrayptr/array -initialization.html

推荐答案

与使用一维数组的方法几乎相同:

Almost the same way as you would with a 1-dimensional array:

#include <iostream>
#include <iomanip>

int main() {
    int arr[10][10] = {
        {  1,  2,  3,  4,  5,  6,  7,  8,  9, 10 },
        {  2,  4,  6,  8, 10, 12, 14, 16, 18, 20 },
        {  3,  6,  9, 12, 15, 18, 21, 24, 27, 30 },
        {  4,  8, 12, 16, 20, 24, 28, 32, 36, 40 },
        {  5, 10, 15, 20, 25, 30, 35, 40, 45, 50 },
        {  6, 12, 18, 24, 30, 36, 42, 48, 54, 60 },
        {  7, 14, 21, 28, 35, 42, 49, 56, 63, 70 },
        {  8, 16, 24, 32, 40, 48, 56, 64, 72, 80 },
        {  9, 18, 27, 36, 45, 54, 63, 72, 81, 90 },
        { 10, 20, 30, 40, 50, 60, 70, 80, 90, 100 }
    };

    for(int i=0; i<10; ++i) {
        for(int j=0; j<10; ++j) {
            std::cout << std::setw(4) << arr[i][j];
        }
        std::cout << '\n';
    }
}

注意:第一个索引不需要值.在这种情况下,编译器将自动计算该索引.

NOTE: The first index does not require a value. In that case the compiler will automatically calculate this index.

int arr[][10] = { ... };

编辑

一种避免双循环的替代方法是:

An alternative that will avoid a double loop is:

## Heading ###include <iostream>
#include <iomanip>


int main() {
    int arr[10][10] = {}; // Initializes all values to 0
    for(int i=0; i<10; ++i ) arr[i][0] = 12;

    for(int i=0; i<10; ++i) {
        for(int j=0; j<10; ++j) {
            std::cout << std::setw(4) << arr[i][j];
        }
        std::cout << '\n';
    }
}

这篇关于如何为表格,二维数组或多维数组的所有元素设置或初始化默认值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆