Как получить массив результатов из разных потоков?

Такой вопрос . Как получить массив результатов из разных потоков?

    #include <thread>
    #include <future>
#include <iostream>
using namespace std;
int Matrix_NxN(int** array, int col);
void matrixUpdate(int** mass, int** mass2, int i, int j, int col);
auto funk(int** array, int col);
 
int main(){
    system("chcp 1251");
    system("cls");
    int col, result, n;
    int** mass, int** p;
    cout << "Размер матрицы ";
    cin >> col;
    mass = new int* [col];
    for (int i = 0; i < col; i++) {
        mass[i] = new int[col];
        for (int j = 0; j < col; j++) {
            mass[i][j] = rand() % 50 + 1;
        }
    }
    p = new int* [col];
    for (int i = 0; i < col; i++)
        p[i] = new int[col];
    n = col - 1;
    for (int i = 0; i < col; i++) {
        matrixUpdate(mass, p, i, 0, col);
        result = funk(p, n);
    }
    //cout << "Определитель равен " << result;
    //cin.get();
    return 0;
}
auto funk(int** array, int col) {
    for (int i = 0; i < col; i++) {
        auto res = async(launch::async, [array, col]{
            Matrix_NxN(array,col);
         });
        return res;
    } 
}
 
int Matrix_NxN(int** array, int col) {
    int i = 0, j = 0, d = 0, k = 1, n = col - 1;
    int** pArray;
    pArray = new int* [col];
    for (int i = 0; i < col; i++)
        pArray[i] = new int[col];
    n = col - 1;
    if (col < 1)
        cout << "Определителя нет!";
    else if (col == 1){
        d = array[0][0];
        return (d);
    }
    else if (col == 2){
        d = array[0][0] * array[1][1] - (array[1][0] * array[0][1]);
        return (d);
    }
    else{
        for (i = 0; i < col; i++){
            matrixUpdate(array, pArray, i, 0, col);
            d = d + k * array[i][0] * Matrix_NxN(pArray, n);
            k = -k;
        }
    }
    return (d);
}
 
 
void matrixUpdate(int** mass, int** mass2, int i, int j, int col){
    int c1, c2, num1 = 0, num2;
    for (c1 = 0; c1 < col - 1; c1++){
        if (c1 == i)
            num1 = 1;
        num2 = 0;
        for (c2 = 0; c2 < col - 1; c2++){
            if (c2 == j)
                num2 = 1;
            mass2[c1][c2] = mass[c1 + num1][c2 + num2];
        }
    }
}

Ответы (0 шт):