Какой смысл использовать третий [] в 2D-векторе? - PullRequest
2 голосов
/ 22 февраля 2020
vector<char>  T[3][4];  //this is a 2d vector table right?
vector<char> v;
for (int x = 0; x <3; x++)
{
  for (int y = 0; y <4; y++)
  {
    for (int z = 0; z <T[x][y].size(); z++) //T.[x][y].size() is the size of?
    {
      v.push_back(T[x][y][z]);  //Why we need use [z] for copying values in T to v?
    }                           //T is a 2D vector, it should only have two []'s, right?
  }
}

Привет всем. Вот фрагмент кода C ++, написанный моим преподавателем, но я действительно запутался в этом. Пожалуйста, смотрите часть комментариев в этом коде. Заранее спасибо!

1 Ответ

1 голос
/ 22 февраля 2020

vector<char> T[3][4]; //this is a 2d vector table right?

Нет, это двумерный массив 1D векторов char.

Таким образом, в целом это 3D, которое соответствует / поддерживает тройную конструкцию [] .

for (int z = 0; z <T[x][y].size(); z++) //T.[x][y].size() is the size of?

... вектор, найденный в позиции x, y двумерного массива.

v.push_back(T[x][y][z]); //Why we need use [z] for copying values in T to v?

Что толкается v - содержимое индекса z в векторе, найденном в позиции x, y двумерного массива T.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...