我正在阅读有关的文档std::ignore http://en.cppreference.com/w/cpp/utility/tuple/ignore来自 cppreference。我发现很难掌握这个对象的真正目的,并且示例代码并没有很好地说明这一点。例如,在下面的代码中,如何以及为什么inserted
设置为真?这对我来说没有多大意义。
#include <iostream>
#include <string>
#include <set>
#include <tuple>
int main()
{
std::set<std::string> set_of_str;
bool inserted;
std::tie(std::ignore, inserted) = set_of_str.insert("Test");
if (inserted) {
std::cout << "Value was inserted sucessfully\n";
}
}
如果有人可以向我解释代码,我将不胜感激。谢谢。
set::insert http://en.cppreference.com/w/cpp/container/set/insert返回一个对,其中第一个是插入元素的迭代器,第二个是一个布尔值,表示该元素是否已插入。
std::tie http://en.cppreference.com/w/cpp/utility/tuple/tie创建左值引用的元组。当分配给结果时insert
它使您能够设置变量tie
将插入的结果返回pair
's first
and second
成员。
std::ignore http://en.cppreference.com/w/cpp/utility/tuple/ignore是一个可以赋值但没有效果的值。
所以基本上,这段代码忽略了元素的迭代器,其中"Test"
被插入并分配inserted
to the second
返回的对的成员set::insert
指示是否插入了 an 元素。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)