Initializing a two dimensional std::vector

Definition:std::vector< std::vector <int> > fog;
Initialization:
not good one

    for(int i=0; i<A_NUMBER; i++)
    {
            std::vector <int> fogRow;
            for(int j=0; j<OTHER_NUMBER; j++)
            {
                 fogRow.push_back( 0 );
            }
            fog.push_back(fogRow);
    }

recommend:
Use the std::vector::vector(count, value) constructor that accepts an initial size and a default value:

std::vector<std::vector<int>> fog(
    A_NUMBER,
    std::vector<int>(OTHER_NUMBER)); // Defaults to zero initial value

If a value other zero, say 4 for example, was required to be the default then:

std::vector<std::vector<int>> fog(
    A_NUMBER,
    std::vector<int>(OTHER_NUMBER, 4));

And just to mention uniform initialization introduced in c++11, which permits the initialization of vector, and other containers, using {}:

std::vector<std::vector<int>> fog { { 1, 1, 1 },
                                    { 2, 2, 2 } };
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值