std::make_pair
vous permet de le faire, de même que la méthode C++11 std::make_tuple
de le faire avec plus de 2 variables.
for(auto p = std::make_pair(5, "Hello World"); p.first < 10; ++p.first){
std::cout << p.second << std::endl;
}
std::make_pair
retournera les deux arguments dans un std::pair
. Les éléments sont accessibles avec .first
y .second
.
Pour plus de deux variables différentes, vous devrez utiliser un fichier de type std::tuple
for(auto t = std::make_tuple(0, "Heliworld", new std::vector<int>);
std::get<0>(t) < 10;
++std::get<0>(t)){
std::cout << std::get<1>(t) << std::endl; // cout Heliworld
std::get<2>(t)->push_back(std::get<0>(t)); // add counter value to the vector
}
std::make_tuple
est un modèle variadique qui construira un tuple de n'importe quel nombre d'arguments (avec quelques limitations techniques bien sûr). Les éléments peuvent être accédés par index avec std::get<INDEX>(tuple_object)