1.C++11中提供的tuple类型,即元组,该类型类似于pair类型,可以存放不同类型的变量,不同之处是它没有数量限制。该类型定义在头文件tuple中。  
2.tuple类型支持常见的操作,如==、!=、get<i>(t);//获取t中第i个值等。   
3.tuple中不但可以存储右值,而且可以存储左值。可以利用tuple让函数一次返回多个值。  
4.一个tuple使用的例子:  
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 
 | #include <iostream>#include <tuple>
 #include <string>
 #include <vector>
 #include <list>
 
 int main(void)
 {
 
 std::tuple<int, std::string, std::vector<double>, std::list<int>>
 tuVal(5, "blueyi", {0.1, 0.2, 0.3, 0.4}, {1, 2, 3, 4});
 typedef decltype(tuVal) tuType;
 int cnt = std::tuple_size<tuType>::value;
 std::cout << cnt << std::endl;
 std::tuple_element<0, tuType>::type ti = std::get<0>(tuVal);
 
 std::cout << "0: " << ti << std::endl;
 std::tuple_element<1, tuType>::type ts = std::get<1>(tuVal);
 std::cout << "1: " << ts << std::endl;
 
 std::tuple_element<2, tuType>::type tv = std::get<2>(tuVal);
 std::cout << "2: " << std::endl;
 for (auto t : tv) {
 std::cout << t << " ";
 }
 std::cout << std::endl;
 
 std::tuple_element<3, tuType>::type tl = std::get<3>(tuVal);
 std::cout << "3: " << std::endl;
 for (auto t : tl) {
 std::cout << t << " ";
 }
 std::cout << std::endl;
 return 0;
 }
 
 |