Я экспериментирую с векторами впервые.Итак, для эксперимента я создал класс, который создает двумерный вектор целых чисел и инициализирует их числами от 0 до 9.
Вот пример, который я создал:
#include <iostream>
#include <vector>
class VectorTest
{
private:
std::vector< std::vector<int> > m_v;
public:
VectorTest(int x, int y)
{
m_v.resize(y);
for (auto &element : m_v)
element.resize(x);
int count {0};
for (int i {0}; i < m_v.size(); ++i)
{
for (int j {0}; j < m_v[i].size(); ++j)
m_v[i][j] = count++ % 10;
}
}
}
void print()
{
for (int i {0}; i < m_v.size(); ++i)
{
for (int j {0}; j < m_v[i].size(); ++j)
{
std::cout << m_v[i][j];
}
std::cout << '\n';
}
}
void print(int x, int y)
{
std::cout << m_v[y][x];
}
};
int main()
{
VectorTest v(9, 9);
v.print();
std::cout << '\n';
v.print (6, 4);
return 0;
}
MyВопрос заключается в следующем: как я могу изменить эту программу, чтобы m_v[x][y]
вместо m_v[y][x]
в основном переключался на индексы строк и столбцов в векторе?
Учитывая, что x - это строка, а y - столбец, как я могу заставить внутренний вектор хранить столбцы, а внешний вектор - строки?Потому что сейчас я должен получить доступ к координатам как m_v[y][x]
, но я хотел, чтобы к нему обращались как m_v[x][y]
.