vector<vector<int>>& mat 初始化
时间: 2023-08-11 10:08:44 浏览: 266
要初始化一个二维vector`vector<vector<int>>`,可以使用以下方法:
```c++
int rows = 3;
int cols = 4;
vector<vector<int>> mat(rows, vector<int>(cols, 0));
```
这个方法会创建一个大小为`rows`x`cols`的二维vector,其中每个元素都是0。如果你想要将它们初始化为其他值,只需要将0替换为你想要的值即可。例如,要初始化一个4x4的二维vector,其中每个元素都是1,可以这样做:
```c++
int rows = 4;
int cols = 4;
vector<vector<int>> mat(rows, vector<int>(cols, 1));
```
相关问题
如何打印std::vector<std::pair<cv::Mat, double>>类型,一个是2d坐标,一个是3d坐标
如果你想打印一个 `std::vector<std::pair<cv::Mat, double>>` 类型的变量,可以使用如下的代码:
```c++
#include <iostream>
#include <vector>
#include <utility>
#include <opencv2/core.hpp>
int main() {
std::vector<std::pair<cv::Mat, double>> vec = {{{1, 2}, 3.0}, {{4, 5}, 6.0}};
for (const auto& p : vec) {
std::cout << p.first << ", " << p.second << std::endl;
}
return 0;
}
```
在上面的代码中,我们首先创建了一个 `std::vector<std::pair<cv::Mat, double>>` 类型的变量 `vec`,并且为其赋值。然后,我们使用 `for` 循环遍历这个变量,对于每个元素,我们分别打印出其 `cv::Mat` 类型的 2D 坐标和 `double` 类型的 3D 坐标。需要注意的是,这里使用了 C++11 中的花括号列表初始化来初始化 `vec` 中的元素,以及使用了 `auto` 关键字来自动推导 `for` 循环中的元素类型。
CornerDetector(int n_rows = 8, int n_cols = 10, double detection_threshold = 40.0); ~CornerDetector() = default; void detect_features(const cv::Mat &image, std::vector<cv::Point2f> &features); void set_grid_position(const cv::Point2f &pos); void set_grid_size(int n_rows, int n_cols); int get_n_rows() const { return grid_n_rows_; } int get_n_cols() const { return grid_n_cols_; } float shiTomasiScore(const cv::Mat &img, int u, int v); int sub2ind(const cv::Point2f &sub);
这段代码定义了一个名为 `CornerDetector` 的类,该类具有以下成员函数:
- `CornerDetector(int n_rows = 8, int n_cols = 10, double detection_threshold = 40.0)`:类的构造函数,可以用来初始化占据网格的行数、列数和检测阈值。
- `~CornerDetector() = default`:类的析构函数。
- `void detect_features(const cv::Mat &image, std::vector<cv::Point2f> &features)`:检测输入图像中的角点,并将角点的坐标保存在 `features` 向量中。
- `void set_grid_position(const cv::Point2f &pos)`:设置占据网格的左上角位置。
- `void set_grid_size(int n_rows, int n_cols)`:设置占据网格的行数和列数。
- `int get_n_rows() const { return grid_n_rows_; }`:获取占据网格的行数。
- `int get_n_cols() const { return grid_n_cols_; }`:获取占据网格的列数。
- `float shiTomasiScore(const cv::Mat &img, int u, int v)`:计算图像中指定位置的 Shi-Tomasi 角点得分。
- `int sub2ind(const cv::Point2f &sub)`:将占据网格的行列坐标转换为索引。
阅读全文