// tuple example #include// std::cout #include // std::tuple, std::get, std::tie, std::ignore int main () { std::tuple foo (10,'x'); auto bar = std::make_tuple ("test", 3.1, 14, 'y'); std::get<2>(bar) = 100; // access element int myint; char mychar; //获取foo中的元素 std::tie (myint, mychar) = foo; // unpack elements std::cout << myint << ' ' << mychar << std::endl; //获取bar中的元素 std::tie (std::ignore, std::ignore, myint, mychar) = bar; // unpack (with ignore) std::cout << myint << ' ' << mychar << std::endl; mychar = std::get<3>(bar); std::get<0>(foo) = std::get<2>(bar); std::get<1>(foo) = mychar; std::cout << "foo contains: "; std::cout << std::get<0>(foo) << ' '; std::cout << std::get<1>(foo) << 'n'; return 0; } // tuple_cat example #include // std::cout #include // std::pair #include // std::string #include // std::tuple, std::tuple_cat, std::get int main () { std::tuple mytuple (3.14,"pi"); std::pair mypair (10,'a'); auto myauto = std::tuple_cat ( mytuple, std::tuple (mypair) ); std::cout << "myauto contains: " << 'n'; std::cout << std::get<0>(myauto) << 'n'; std::cout << std::get<1>(myauto) << 'n'; std::cout << std::get<2>(myauto) << 'n'; std::cout << std::get<3>(myauto) << 'n'; return 0; } // make_tuple example #include #include #include int main() { auto first = std::make_tuple (10,'a'); // tuple < int, char > const int a = 0; int b[3]; // decayed types: auto second = std::make_tuple (a,b); // tuple < int, int* > auto third = std::make_tuple (std::ref(a),"abc"); // tuple < const int&, const char* > std::cout << "third contains: " << std::get<0>(third); std::cout << " and " << std::get<1>(third); std::cout << std::endl; return 0; }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)