本文整理汇总了C++中Road::get_cell方法的典型用法代码示例。如果您正苦于以下问题:C++ Road::get_cell方法的具体用法?C++ Road::get_cell怎么用?C++ Road::get_cell使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Road
的用法示例。
在下文中一共展示了Road::get_cell方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: synthesize_traffic
/**
* @brief Network::synthesize_traffic Creates new traffic in the model, attempting to meet density requirements.
*/
void Network::synthesize_traffic()
{
vector<vector<Cell*> > cells;
for(vector<Road*>::size_type i = 0; i < this->input_roads.size(); i++)
{
Road *r = this->input_roads.at(i);
vector<Cell*> v;
for(vector<Cell*>::size_type x = 0; x < r->get_length() && x < r->get_speed_limit(); x++)
{
Cell *c = r->get_cell(x);
if(!c->has_vehicle())
v.push_back(c);
else
break;
}
if(!v.empty())
cells.push_back(v);
}
while((this->get_actual_input_density() < this->get_desired_input_density()) && !cells.empty())
{
unsigned int index = (rand() % cells.size() + 0);
if(!cells.at(index).empty())
{
Cell *cell = cells.at(index).back();
Vehicle *v = new Vehicle(cell->get_speed_limit());
v->set_generation(this->generation);
cell->set_vehicle(v);
cells.at(index).pop_back();
}
else
cells.erase(cells.begin() + index);
}
}