目录
vector 不是模板 报错解决
list和vector在命名空间std里,因此只需要在vector前加std::即可。
#include <vector>
vector<int> player;//错误写法
std::vector<int> player;//正确写法1
using namespace std;//正确写法2
vector<int> player;
嵌套vector,批量修改失败:
std::vector<std::vector<float>> anchors = {
{-22.6274, -11.3137, 22.6274, 11.3137, -16, -16, 16, 16, -11.3137, -22.6274, 11.3137, 22.6274 },
{-45.2548, -22.6274, 45.2548, 22.6274, -32, -32, 32, 32, -22.6274, -45.2548, 22.6274, 45.2548 },
{-90.5097, -45.2548, 90.5097, 45.2548, -64, -64, 64, 64, -45.2548, -90.5097, 45.2548, 90.5097 },
{-181.019, -90.5097, 181.019, 90.5097, -128, -128, 128, 128, -90.5097, -181.019, 90.5097, 181.019 },
{-362.039, -181.019, 362.039, 181.019, -256, -256, 256, 256, -181.019, -362.039, 181.019, 362.039 }
};
for (int i = 0; i < anchors.size(); i++) {
std::vector<float> data = anchors[i];
for (int j = 0; j < data.size(); j++) {
data[j] /= 2.0;
}
}
嵌套vector,批量修改OK:
std::vector<std::vector<float>> anchors = {
{-22.6274, -11.3137, 22.6274, 11.3137, -16, -16, 16, 16, -11.3137, -22.6274, 11.3137, 22.6274 },
{-45.2548, -22.6274, 45.2548, 22.6274, -32, -32, 32, 32, -22.6274, -45.2548, 22.6274, 45.2548 },
{-90.5097, -45.2548, 90.5097, 45.2548, -64, -64, 64, 64, -45.2548, -90.5097, 45.2548, 90.5097 },
{-181.019, -90.5097, 181.019, 90.5097, -128, -128, 128, 128, -90.5097, -181.019, 90.5097, 181.019 },
{-362.039, -181.019, 362.039, 181.019, -256, -256, 256, 256, -181.019, -362.039, 181.019, 362.039 }
};
for (int i = 0; i < anchors.size(); i++) {
for (auto& v : anchors[i])
{
v /= 2.0;
}
}