gpt4 book ai didi

c++ - 使用 vector 的二维数组操作

转载 作者:行者123 更新时间:2023-11-27 23:14:56 25 4
gpt4 key购买 nike

我最近才开始使用 vector ,与普通的数组声明相比,发现它们非常方便。然而,我只处理了一维操作如下:-

      vector<int>X;
X.push_back(value/variable);

如何对等效的 2D vector 执行类似操作并逐行动态更新值?如果问题很简单,请在这里帮助我,我深表歉意。如果您能给我一个链接,其中所有 vector 操作都作为教程提供,那将非常有帮助。我尝试了几个网站,但它们到处都是。请帮助我。

最佳答案

另一种使用二维数组的方法是在您自己的类中使用一个具有二维寻址的 vector 。

举个例子:

#include <iostream>
#include <vector>

class array_2d
{
public:
array_2d(
unsigned int x,
unsigned int y )
:
m_size_x( x ),
m_size_y( y ),
// resize vector to size x*y, all elements are 0.
m_data( x*y, 0 )
{}

int
get( unsigned int x, unsigned int y ) const
{
return m_data[ x + y * m_size_y ];
}

void
set( unsigned int x, unsigned int y, int data )
{
m_data[ x + y * m_size_y ] = data;
}

private:
unsigned int m_size_x;
unsigned int m_size_y;

std::vector <int> m_data;
};

int main()
{
// 2D array 2x3.
array_2d m( 2, 3 );

// Set 2 cells into 1 and 3.
m.set( 1, 1, 1 );
m.set( 2, 0, 3 );

for( unsigned int i = 0; i < 3; ++i )
{
for( unsigned int j = 0; j < 2; ++j )
std::cout << m.get( i, j ) << " ";

std::cout << std::endl;
}
return 0;
}

关于c++ - 使用 vector 的二维数组操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16973403/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com