试图扫描车辆向量的插入信息,以换取C
Trying to scan a vector of vehicles an extract information for lane switching C++
我正在尝试构建一个包含某些对象的模拟。我有车辆和车道。我有一台引擎,可以根据车辆的速度和加速。
bool Lane::allowedOvertake(double pos, double mindist)
{
for (unsigned int iV = 0; iV < getNVehiclesinLane() - 1; iV++)
{
if ((fVehicles[iV]->getPosition() > pos - mindist) // If inside rear safety distance.
|| fVehicles[iV]->getPosition() < pos + mindist) // If inside front safety distance.
{}//continue
//else {return false;}
}
return true;
}
我希望此for
环路对车道中的所有车辆进行扫描,以便来自附近车道的车辆可以检查它是否可以进入该扫描的车道。请注意,pos
和mindist
参数是位置,而 lane寻求车辆的最小距离需要安全切换车道。另外,fVehicles
是车辆的向量。如果结果为 true
,则我在"主"对象(道路)中使用if
语句,该语路允许进行实际的开关(使用vector.insert()
)。
我目前可以不考虑车辆开关车道。乍一看,我怀疑是上述函数的逻辑是不正确的。提供解决方案甚至更好的解决方案的任何帮助,都将不胜感激。
注意:我有一个车辆向量和一个车道向量。但是,车辆的位置未在矢量中订购。建议我重新设计它,以使矢量中的车辆的顺序更加重要,并且在制定代码时可以从中受益。但是,就目前而言,我想修复目前的设计。然后,我将研究重新设计模拟,以使订单更加重要。除此之外,我上面的问题仍然存在,只是以略有不同的形式。
给定一个未排序的vector
,您必须检查它们是否与传递的位置相距甚远,或者换句话说,如果 关闭:
#include <algorithm>
bool Lane::allowedOvertake(double pos, double mindist)
{
return std::none_of(
fVehicles.begin(), fVehicles.end(), [pos, mindist] (auto & v) {
return v->getPosition() <= pos + mindist
and v->getPosition() >= pos - mindist;
}
);
}
相关文章:
- 正在查找文档以获得PS4平台的C++中的设备信息
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- 预处理器:插入结构名称中的前一个行号
- 为什么在运行时没有向我们提供有关分段错误的更多信息?
- 奇怪的(对我来说)返回声明 - 在谷歌上找不到任何关于它的信息
- 在未初始化映射的情况下,将值插入到映射的映射中
- 如何在c++中只将键插入到bimap的一侧
- 如何将结构插入到集合中并打印集合的成员
- C++json插入数组
- Visual Studio 2019:插入多个C++风格的单行注释
- nlohmann-json将一个数组插入到另一个数组中
- 有效地使用std::unordered_map来插入或增加键的值
- 为字符串中每 N 个字符插入空格的函数没有按照我认为的方式工作?
- 试图扫描车辆向量的插入信息,以换取C
- 如何将信息插入 pdb 文件
- 编译器在遇到提取或插入运算符时处理信息(字符串、操纵器等)的顺序是什么?
- 多映射插入键类型信息 std::make_pair vs std::p air 构造函数
- 将文件中的信息插入到结构中
- 在位置 i 处插入元素,并根据 i 第一个元素返回信息