std::tie详解
生活随笔
收集整理的這篇文章主要介紹了
std::tie详解
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
std::tie:創(chuàng)建左值引用的?tuple,或?qū)?tuple 解包為獨立對象
返回值
含左值引用的?std::tuple?對象。
注意
std::tie?可用于解包?std::pair?,因為?std::tuple?擁有從 pair 的轉(zhuǎn)換賦值:
示例
std::tie?能用于引入字典序比較到結(jié)構(gòu)體,或解包 tuple :
#include <iostream> #include <string> #include <set> #include <tuple>struct S {int n;std::string s;float d;bool operator<(const S& rhs) const{// 比較 n 與 rhs.n,// 然后為 s 與 rhs.s,// 然后為 d 與 rhs.dreturn std::tie(n, s, d) < std::tie(rhs.n, rhs.s, rhs.d);} };int main() {std::set<S> set_of_s; // S 為可比較小于 (LessThanComparable)S value{42, "Test", 3.14};std::set<S>::iterator iter;bool inserted;// 解包 insert 的返回值為 iter 與 insertedstd::tie(iter, inserted) = set_of_s.insert(value);if (inserted)std::cout << "Value was inserted successfully\n"; }結(jié)果如下:
Value was inserted successfullystd::tie會將變量的引用整合成一個tuple,從而實現(xiàn)批量賦值。
int i; double d; string s;tie(i, d, s) = t3;cout << i << " " << d << " " << s << endl;會輸出4 2 3
如下例子摘自http://www.cplusplus.com/reference/tuple/tie/
// packing/unpacking tuples #include <iostream> // std::cout #include <tuple> // std::tuple, std::make_tuple, std::tieint main () {int myint;char mychar;std::tuple<int,float,char> mytuple;mytuple = std::make_tuple (10, 2.6, 'a'); // packing values into tuplestd::tie (myint, std::ignore, mychar) = mytuple; // unpacking tuple into variablesstd::cout << "myint contains: " << myint << '\n';std::cout << "mychar contains: " << mychar << '\n';return 0; }輸出:
myint contains: 10 mychar contains: astd::ignore介紹:
任何值均可賦給而無效果的未指定類型的對象。目的是令?std::tie?在解包?std::tuple?時作為不使用的參數(shù)的占位符使用。
示例
解包 set.insert() 所返回的 pair ,但只保存布爾值。
#include <iostream> #include <string> #include <set> #include <tuple>int main() {std::set<std::string> set_of_str;bool inserted = false;std::tie(std::ignore, inserted) = set_of_str.insert("Test");if (inserted) {std::cout << "Value was inserted successfully\n";} }結(jié)果如下:?
Value was inserted successfully?
總結(jié)
以上是生活随笔為你收集整理的std::tie详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 制裁那么凶猛,无脑上会不会走到尽头,首先
- 下一篇: 算法 数论 素数(质数)