C ++ 11 python equivalent x, y, z = array

Is there a C ++ 11 equivalent for this python statement:

x, y, z = three_value_array 

In C ++ you can do it like:

 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 to accomplish this in C ++ 11?

+8
c ++ c ++ 11
source share
1 answer

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; } 
+9
source share

All Articles