2017-02-19 78 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]以获得更好的答案。您至少需要告诉我们发生了哪些错误,因此我们知道您在“allMoves”的意思时不会错误输入“allAiMoves”。 – nwp

+0

是的,我的意思是allMoves。 我忘了提及我正在使用Qt。我得到的错误如下: 从'___ gnu_cxx :: __ aloc_traits > :: value_type {aka Coordinate}'转换为非标量类型'std :: vector '请求 – Arcana

回答

0

整数r指矢量allMoves。因此,代码段的第三行应为:

vector<Coordinate> finalList = allMoves[r]; 

您似乎有编译错误。你可以看看this question,你可以找到一个矢量矢量的例子。

+0

没错。我只是写错了。无论如何,这一切都是移动的。 – Arcana

+0

我仍然收到相同的错误。 :) – Arcana