-2
votes

Comment appendez-vous 10 tableaux pour former un tableau unique en C ++?

Disons que j'ai ces 10 tableaux précédemment déclarés dans mon code.

 ArrayOfArrays = { arr1[], arr2[], arr3[], arr4[], arr5[], arr6[], arr7[], arr8[], arr9[], arr10[] }


5 commentaires

Que voulez-vous dire par Ajoutez les 10 de ces tableaux à un seul tableau ? Comme [a] + [b] + ... + [j] = [z] = [z] ou [z] = [[A] [b] ... [J]] / code>


Comme ceci: arrayofarrays = {arr1 [], arr2 [], arr3 [], Arr4 [], Arr5 [], Arr6 [], Arr7 [] ,R8 [], ARR9 [], ARR10 []}


Alors, vous voulez créer une matrice?


Y a-t-il une contrainte d'utilisation des tableaux? Les tailles de toutes les tableaux sont-elles prédéfinies / prénomnantes? Sinon, vous pouvez utiliser une liste liée. Sinon, si les choses sont prédéfinies, il est simple de déclarer une array résultante n peuplée


Oui, les tailles sont prédéfinies. Comment devrais-je déclarer un tableau résultant et le peupler?


4 Réponses :


1
votes

Je veux ajouter les 10 de ces matrices l'une après l'autre pour en faire un Array unique?

Vous pouvez avoir TAREY de pointeurs comme xxx

ici ArrayOnPointers est une matrice de 10 Inti les pointeurs, c'est-à-dire qu'il peut stocker l'adresse de 10 une dimension int graphique comme Arr1 , arrate etc.

i Supposons qu'il peut y avoir une meilleure méthode que ce que je suggère à l'avance C ++ pour la même tâche.


0 commentaires

3
votes

Fondamentalement, je souhaite ajouter les 10 de ces matrices l'une après l'autre pour créer un seul tableau. P>

Vous ne pouvez pas faire cela. P>

Le plus proche que vous puissiez obtenir, c'est à l'aide de std :: Array code>. p>

std::array<int, 10> arr1 = {1,2,3,4,5,6,7,8,9,10};
...
std::array<int, 10> arr10 = {1,2,3,4,5,6,7,8,9,10};

std::array<std::array<int, 10>, 10> arrayOfArray = {arr1, ..., arr10};


0 commentaires

2
votes

Essayez cette approche:

#include <iostream>
#include <vector>

int arr1[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
int arr2[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
//  ...other arrays here...

// We pass a reference to a vector and return the same vector for performance reasons.
// Compiler often can optimize that into a better code.
std::vector<int> append(std::vector<int> & vec, int * data, int size)
{
    for (int i = 0; i < size; ++i)
        vec.push_back(data[i]);
    return vec;
}

int main()
{
    std::vector<int> data;

    data = append(data, arr1, 10);
    data = append(data, arr2, 10);

    for (auto i : data)
        std::cout << i << ", ";
    std::cout << std::endl;
    return 0;
}


0 commentaires