std::tuple 用法

std::tuple 用法,第1张

std::tuple 用法
// 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;
}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5713812.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存