Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Trả về nhiều giá trị từ hàm bằng std::tuple và std::pair trong C++


C++ không hỗ trợ trả về nhiều giá trị trực tiếp. Thay vì output parameter, dùng std::tuple (nhiều kiểu) hoặc std::pair (2 giá trị).

Ví dụ

#include <iostream>
#include <tuple>
#include <utility>
#include <string>
using namespace std;

tuple<int, string, char> func_tuple(int x, string y) {
    return make_tuple(x, y, 'A');
}

pair<int, string> func_pair(int x, string y) {
    return make_pair(x, y);
}

int main() {
    int a; string b; char c;
    tie(a, b, c) = func_tuple(48, "Hello");
    auto p = func_pair(89, "World");
    cout << "Tuple: (" << a << ", " << b << ", " << c << ")\n";
    cout << "Pair: (" << p.first << ", " << p.second << ")\n";
}

Kết quả

Tuple: (48, Hello, A)
Pair: (89, World)

Lưu ý thêm: bài gốc có phần nói về nullptr trùng lặp với bài khác.