C++ åèæå
- C++11
- C++14
- C++17
- C++20
- C++ ç¼è¯å¨æ¯ææ åµè¡¨
- ç¬ç«ä¸å®¿ä¸»å®ç°
- C++ è¯è¨
- C++ å ³é®è¯
- é¢å¤çå¨
- C++ æ ååºå¤´æä»¶
- å ·åè¦æ±
- åè½ç¹æ§æµè¯ (C++20)
- å·¥å ·åº
- ç¨åºæ¯æå·¥å ·
- std::initializer_list
- 彿°å¯¹è±¡
- std::hash
- std::pair
- std::tuple
- std::tie
- std::tuple<Types...>::tuple
- std::tuple<Types...>::swap
- std::make_tuple
- std::forward_as_tuple
- std::tuple çæ¨å¯¼æå¼
- std::tuple<Types...>::operator=
- std::tuple_cat
- operator==,!=,<,<=,>,>=,<=>(std::tuple)
- std::swap(std::tuple)
- std::get(std::tuple)
- std::tuple_size<std::tuple>
- std::tuple_element<std::tuple>
- std::uses_allocator<std::tuple>
- std::ignore
- std::apply
- åºç¹æ§æµè¯å® (C++20)
- std::optional
- std::any
- std::variant
- æ ¼å¼ååº (C++20)
- std::integer_sequence
- std::exchange
- std::make_from_tuple
- std::launder
- std::to_chars
- std::from_chars
- std::as_const
- std::source_location
- å忰彿°
- std::bitset
- std::cmp_equal, cmp_not_equal, cmp_less, cmp_greater, cmp_less_equal, cmp_greater_equal
- std::in_range
- std::declval
- std::forward
- std::move
- std::move_if_noexcept
- std::chars_format
- std::piecewise_construct_t
- std::piecewise_construct
- std::in_place, std::in_place_type, std::in_place_index, std::in_place_t, std::in_place_type_t, std::in_place_index_t
- 注é
- ç±»åæ¯æï¼åºæ¬ç±»åãRTTIãç±»åç¹æ§ï¼
- æ¦å¿µåº (C++20)
- é误å¤ç
- 卿å å管ç
- æ¥æåæ¶é´å·¥å ·
- å符串åº
- 容å¨åº
- è¿ä»£å¨åº
- èå´åº (C++20)
- ç®æ³åº
- æ°å¼åº
- è¾å ¥/è¾åºåº
- æä»¶ç³»ç»åº
- æ¬å°ååº
- æ£å表达å¼åº
- ååæä½åº
- çº¿ç¨æ¯æåº
- å®éªæ§ C++ ç¹æ§
- æç¨çèµæº
- ç´¢å¼
- std 符å·ç´¢å¼
- åç¨æ¯æ (C++20)
- C++ å ³é®è¯
ä½ç½®ï¼é¦é¡µ > C++ åèæå >å·¥å ·åº >std::tuple > std::tie
std::tie
| å®ä¹äºå¤´æä»¶ <tuple>
|
||
| template< class... Types > tuple<Types&...> tie( Types&... args ) noexcept; |
(C++11 èµ·) (C++14 å) |
|
| template< class... Types > constexpr tuple<Types&...> tie( Types&... args ) noexcept; |
(C++14 èµ·) | |
å建å°å ¶åæ°æ std::ignore å®ä¾çå·¦å¼å¼ç¨ç tuple ã
åæ°
| args | - | æé tuple æç¨çé¶ææ´å¤å·¦å¼åæ° |
è¿åå¼
å«å·¦å¼å¼ç¨ç std::tuple 对象ã
注æ
std::tie å¯ç¨äºè§£å
std::pair ï¼å 为 std::tuple æ¥æä» pair ç转æ¢èµå¼ï¼
bool result; std::tie(std::ignore, result) = set.insert(value);
示ä¾
std::tie è½ç¨äºå¼å
¥åå
¸åºæ¯è¾å°ç»æä½ï¼æè§£å
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.d return 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 ä¸ inserted std::tie(iter, inserted) = set_of_s.insert(value);  if (inserted) std::cout << "Value was inserted successfully\n"; }
è¾åºï¼
Value was inserted successfully
åé
å建ä¸ä¸ª tuple 对象ï¼å
¶ç±»åæ ¹æ®åå®åç±»åå®ä¹ (彿°æ¨¡æ¿) | |
å建转åå¼ç¨ç tuple (彿°æ¨¡æ¿) | |
éè¿è¿æ¥ä»»ææ°éçå
ç»æ¥å建ä¸ä¸ªtuple (彿°æ¨¡æ¿) | |
ç¨ tie è§£å
tuple æ¶ç¨æ¥è·³è¿å
ç´ çå ä½ç¬¦ (常é) |