std::tie
是 C++ 標準庫中的一個函數模板,它用于創建一個元組,該元組包含對其參數的引用。這在多種情況下非常有用,特別是當你需要將多個值解包到單獨的變量中時。以下是 std::tie
的一些常見使用場景:
std::tie
來解包這些值到單獨的變量中。#include<iostream>
#include<tuple>
std::pair<int, int> getPair() {
return {3, 4};
}
int main() {
int a, b;
std::tie(a, b) = getPair();
std::cout << "a: " << a << ", b: " << b << std::endl;
return 0;
}
std::map
并且想要在遍歷時同時獲取鍵和值時,你可以使用 std::tie
。#include<iostream>
#include <map>
#include<tuple>
int main() {
std::map<std::string, int> myMap = {{"apple", 1}, {"banana", 2}};
for (const auto &pair : myMap) {
std::string key;
int value;
std::tie(key, value) = pair;
std::cout << "Key: "<< key << ", Value: "<< value<< std::endl;
}
return 0;
}
std::tie
更簡潔。#include<iostream>
#include <map>
int main() {
std::map<std::string, int> myMap = {{"apple", 1}, {"banana", 2}};
for (const auto &[key, value] : myMap) {
std::cout << "Key: "<< key << ", Value: "<< value<< std::endl;
}
return 0;
}
注意:結構化綁定在 C++17 及更高版本中可用。如果你使用的是較舊的編譯器,你可能需要升級或使用 std::tie
。