繁体   English   中英

如果我使用 std:find 在向量对中找到一个元素,如何将向量中的值转换为字符串?

[英]If I find an alement in a vector pairs using std:find, how can I get the values from the vector into a string?

使用find函数检查string check; vector<pair<string, string>>通过检查pair[i].first ,我想将pair[i].second的元素放入单独的字符串string holder;

我将如何在不使用循环的情况下做到这一点,或者这是不可避免的,这是唯一的方法? 除了真假之外,find函数还能返回值吗?

如果未找到,则 std::find 返回一个迭代器到找到的项目或 end() 。 所以你有一个迭代器,如果它被找到的话。

取消引用std::find函数返回的迭代器。 迭代器指向的基础值是std::pair类型。 要通过迭代器访问称为firstsecond的对的底层成员对象,分别使用->first->second

std::vector<std::pair<std::string, std::string>> v { {"aa", "bb"}, { "cc", "dd" }};
auto mypair = std::make_pair<std::string, std::string>("cc", "dd");
auto foundit = std::find(std::begin(v), std::end(v), mypair);
std::string s1;
std::string s2;
if (foundit != std::end(v)) {
    s1 = foundit->first; // first element
    s2 = foundit->second; // second element
}
else {
    std::cout << "v does not contain the pair." << '\n';
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM