Is there a C++11 equivalent to this python statement:
x, y, z = three_value_array
In C++ you could do this as:
double x, y, z;
std::array<double, 3> three_value_array;
// assign values to three_value_array
x = three_value_array[0];
y = three_value_array[1];
z = three_value_array[2];
Is there a more compact way of accomplishing this in C++11?
You can use std::tuple
and std::tie
for this purpose:
#include <iostream>
#include <tuple>
int main()
{
/* This is the three-value-array: */
std::tuple<int,double,int> triple { 4, 2.3, 8 };
int i1,i2;
double d;
/* This is what corresponds to x,y,z = three_value_array: */
std::tie(i1,d,i2) = triple;
/* Confirm that it worked: */
std::cout << i1 << ", " << d << ", " << i2 << std::endl;
return 0;
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With