std::vector<cv::String> image_paths;如何打印路径
时间: 2024-01-20 09:03:50 浏览: 28
您可以使用循环遍历每个路径,然后使用cout打印出每个路径,示例代码如下:
```c++
#include <iostream>
#include <opencv2/core.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/imgcodecs.hpp>
int main(int argc, char* argv[])
{
std::vector<cv::String> image_paths;
cv::glob("path/to/images/*.png", image_paths, false);
for (const auto& path: image_paths)
{
std::cout << path << std::endl;
}
return 0;
}
```
其中,`cv::glob()`函数用于获取指定路径下的所有文件路径,`false`表示只获取文件路径,不获取文件夹路径。遍历时使用`for`循环,`const auto& path`表示遍历到的当前路径,然后使用`std::cout`打印出来即可。
相关问题
std::vector<std::vector<Node*>> paths;,修改代碼定義path的數量為agvs.size
你可以这样修改代码:
```
std::vector<std::vector<Node*>> paths(agvs.size());
```
这样就定义了一个大小为agvs.size()的vector,其中每个元素都是一个vector<Node*>类型的向量。然后你就可以在程序中使用这个paths向量了。
void MainWindow::moveAgvs() { Astar astar; std::vector<std::vector<Node*>> paths(agvs.size());,怎麽在別的函數里引用moveagvs的局部變量path
在C++中,局部变量只能在其所在的函数内部使用,不能在其他函数中直接引用。如果想要在其他函数中使用局部变量,有以下两种方法:
1. 将局部变量声明为类的成员变量,这样其他函数就可以通过类的对象访问该变量。
例如,在MainWindow类中声明一个std::vector<std::vector<Node*>> paths成员变量,并在moveAgvs函数中将其赋值,然后就可以在其他函数中通过MainWindow对象访问该变量:
```
class MainWindow {
public:
void moveAgvs();
std::vector<std::vector<Node*>> paths;
};
void MainWindow::moveAgvs() {
Astar astar;
paths.resize(agvs.size());
// ...
}
void otherFunction(MainWindow& mainWindow) {
// 使用MainWindow对象的成员变量paths
// ...
}
```
2. 将局部变量作为参数传递给其他函数。
例如,在其他函数中声明一个std::vector<std::vector<Node*>>类型的参数,然后在调用该函数时将局部变量paths作为参数传递:
```
void otherFunction(std::vector<std::vector<Node*>>& paths) {
// 使用传递进来的paths变量
// ...
}
void MainWindow::moveAgvs() {
Astar astar;
std::vector<std::vector<Node*>> paths(agvs.size());
// ...
otherFunction(paths);
}
```