QStringList 转std::vector<std::string>
时间: 2023-10-17 21:23:11 浏览: 392
可以通过迭代器将QStringList转换为std::vector<std::string>:
```cpp
#include <QStringList>
#include <vector>
#include <string>
std::vector<std::string> QStringListToVector(const QStringList& list)
{
std::vector<std::string> vec;
vec.reserve(list.size());
for (const auto& str : list) {
vec.push_back(str.toStdString());
}
return vec;
}
```
在此函数中,我们首先创建一个空的std::vector<std::string>,并使用reserve函数预分配所需的空间。然后,我们遍历QStringList并将每个QString转换为std::string,并使用push_back函数将其添加到向量中。
请注意,我们使用toStdString函数将QString转换为std::string。这将返回一个表示QString的UTF-8字符串的std::string。如果您的QString包含非ASCII字符,您可能需要使用其他编码(例如UTF-16)来转换字符串。
相关问题
QStringList转std::vector<std::string>
QStringList是Qt框架中的一个类,表示一个由QString组成的列表。std::vector是C++ STL中的一个类,表示一个动态数组。将QStringList转换为std::vector<std::string>可以使用以下代码:
```
QStringList qstrList;
qstrList << "one" << "two" << "three";
std::vector<std::string> strVec;
for (const auto& qstr : qstrList) {
strVec.push_back(qstr.toStdString());
}
```
首先定义一个QStringList对象,并向其中添加一些字符串。然后定义一个std::vector<std::string>对象。使用for循环遍历QStringList中的每个QString,将其转换为std::string并添加到std::vector<std::string>对象中。最终得到的strVec就是一个由QStringList转换而来的std::vector<std::string>对象。
QVector<QString>和std::vector<cv::string>互转
要将QVector<QString>和std::vector<cv::string>互相转换,你可以使用以下方法:
1. 将QVector<QString>转换为std::vector<cv::string>:
- 首先创建一个空的std::vector<cv::string>列表。
- 然后遍历QVector<QString>,将每个QString元素转换为cv::string,并将其添加到std::vector<cv::string>中。
- 最后,你就可以使用std::vector<cv::string>了。
2. 将std::vector<cv::string>转换为QVector<QString>:
- 首先创建一个空的QVector<QString>列表。
- 然后遍历std::vector<cv::string>,将每个cv::string元素转换为QString,并将其添加到QVector<QString>中。
- 最后,你就可以使用QVector<QString>了。
注意,在进行转换之前,确保你已经包含了所需的头文件,并且在使用cv::string之前,你也应该使用了命名空间cv。
请注意,这里的转换方法是一种通用的方法,可以用于其他类型的向量或列表的转换。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [vector2d:Ruby库(和gem),用于处理二维向量](https://download.csdn.net/download/weixin_42181693/15756579)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [趣谈implicit instantiation of undefined template](https://blog.csdn.net/liunanya/article/details/129596469)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文