void GridMap::add(const std::string& layer, const Matrix& data) { assert(size_(0) == data.rows()); assert(size_(1) == data.cols()); if (exists(layer)) { // Type exists already, overwrite its data. data_.at(layer) = data; } else { // Type does not exist yet, add type and data. data_.insert(std::pair<std::string, Matrix>(layer, data)); layers_.push_back(layer); } }
时间: 2024-04-26 21:22:49 浏览: 89
C++ 模板写的短小字符串类,用于替换字符数组和std::string
5星 · 资源好评率100%
这段代码是一个C++的成员函数,用于向网格地图(GridMap)的指定图层(layer)中添加数据。它接收一个名称为`layer`的字符串作为图层标识符,以及一个大小与网格地图相同的矩阵数据`data`。
这个函数首先通过`assert`语句检查传入的矩阵数据`data`的大小是否与网格地图的大小相同,如果不同则会触发断言并终止程序。
然后函数会检查指定的图层`layer`是否已经存在,如果存在,则直接将传入的矩阵数据`data`覆盖原有的数据;如果不存在,则将传入的`layer`和`data`作为一个键值对插入到`data_`这个map容器中,同时将`layer`追加到`layers_`这个图层名称的数组中。
阅读全文