gpt4 book ai didi

c++ - 无法通过仅给出大小在 CPP std::vector> 中创建二维 vector

转载 作者:行者123 更新时间:2023-12-02 16:07:57 24 4
gpt4 key购买 nike

我在头文件中创建了一个空的二维 vector ,只是提供了大小但无法创建它。

    class Grid
{
public:

int rows = 5/0.05;
int cols = 6/0.05;

std::vector<std::vector<uint8_t>> grid(rows, std::vector<uint8_t>(cols, 0));

};

我遇到了错误

no matching function for call to 'std::vector<std::vector<unsigned char> >::vector(int&, std::vector<int>)'

`error: 'rows' is not a type
19 | std::vector<std::vector<uint8_t>> grid(rows, std::vector<uint8_t>(cols, 0));
| ^~~~
C:\Users\prave\Documents\projects\ExhaustiveSearchScanMatching\occupancy_grid.h:19:79: error: expected ')' before ',' token
19 | std::vector<std::vector<uint8_t>> grid(rows, std::vector<uint8_t>(cols, 0));
| ~ ^
| )
C:\Users\prave\Documents\projects\ExhaustiveSearchScanMatching\occupancy_grid.h:19:79: error: expected ')' before ',' token
19 | std::vector<std::vector<uint8_t>> grid(rows, std::vector<uint8_t>(cols, 0));
| ~ ^
| )
C:\Users\prave\Documents\projects\ExhaustiveSearchScanMatching\occupancy_grid.h:19:81: error: expected unqualified-id before numeric constant
19 | std::vector<std::vector<uint8_t>> grid(rows, std::vector<uint8_t>(cols, 0));
| ^`

任何人都可以帮助解决这个问题。

最佳答案

您使用了两种不同的整数类型 uint8_tint

你应该把它改成

std::vector<std::vector<uint8_t>> grid(rows, std::vector<uint8_t>(cols, 0));

作为类(class)成员要将 vector 初始化为也依赖于其他类成员的类成员,您可以使用类构造函数。以下代码对我有用。

#include <vector>
#include <cstdint>

class grid {
public:
int rows = 5/0.05;
int cols = 6/0.05;

std::vector<std::vector<uint8_t>> grid_vector;
grid() : grid_vector(rows, std::vector<uint8_t>(cols, 0)) {}
};

关于c++ - 无法通过仅给出大小在 CPP std::vector<std::vector<uint8_t>> 中创建二维 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68885502/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com