2017-02-19 3 views
-1

Это мой первый пост, так что извините, если я делаю что-то неправильно.Нужно выбрать случайную координату из двумерного вектора

У меня возникают проблемы с выбором координаты из двумерного вектора. Вот как выглядит мой код:

Предположим, что allMoves - это двумерный вектор координат.

int vectorSize = allMoves.size(); 
int r = rand() % vectorSize; 
vector<Coordinate> finalList = allAiMoves[r]; // error here 

int finalListSize = finalList.size(); 
int t = rand() % finalListSize; 

Что я пытаюсь выполнить, сначала выберите случайный вектор внутри векторов. затем примените этот вектор к новому вектору, а затем выберите из него случайный элемент. однако мой код дает мне ошибку в указанном месте.

+3

Какая ошибка показана конкретно? Доступ за пределы границ? В идеале [изменить] ваш вопрос и предоставить нам [MCVE], который воспроизводит вашу проблему. –

+2

Сделайте [mcve], чтобы получить лучшие ответы. Вы должны хотя бы сказать нам, какая ошибка произошла, поэтому мы знаем, что вы не просто ошиблись «allAiMoves», когда вы имели в виду «allMoves». – nwp

+0

Да, я имел в виду allMoves. Я забыл упомянуть, что я использую Qt. также ошибка, которую я получаю, следующая: преобразование из '___ gnu_cxx :: __ aloc_traits > :: value_type {aka Coordinate}' для нескалярного типа 'std :: vector ' запрошен – Arcana

ответ

0

Целое число r относится к вектору allMoves. Поэтому 3-я строка вашего фрагмента кода должна выглядеть так:

vector<Coordinate> finalList = allMoves[r]; 

У вас возникли ошибки в компиляции. Вы могли бы посмотреть на this question, где вы можете найти пример вектора вектора.

+0

Справа. Я просто написал это неправильно. Это все в любом случае. – Arcana

+0

Я все еще получаю ту же ошибку. :) – Arcana

Смежные вопросы