Maison >développement back-end >C++ >Comment éviter les erreurs d'indice hors de portée lors de la création d'une matrice 2D à l'aide de vecteurs de vecteurs ?

Comment éviter les erreurs d'indice hors de portée lors de la création d'une matrice 2D à l'aide de vecteurs de vecteurs ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-29 19:10:03498parcourir

How to Avoid Subscript Out of Range Errors When Creating a 2D Matrix Using Vectors of Vectors?

Vecteur de vecteurs pour la création de matrice : surmonter les erreurs d'indice hors de portée

Lorsque vous essayez de créer une matrice 2D à l'aide de vecteurs de vecteurs, il est Il est crucial d'initialiser correctement la structure de données pour éviter les erreurs d'indice hors de portée. Ce problème se produit lorsque vous essayez d'accéder aux éléments d'un vecteur sans allouer au préalable la mémoire nécessaire.

Résolution du problème

Pour résoudre ce problème, vous devez initialiser le vecteur de vecteurs à la taille appropriée avant d’accéder à des éléments. Ceci peut être réalisé en utilisant le code suivant :

<code class="cpp">vector<vector<int>> matrix(RR, vector<int>(CC));</code>

Ce code crée un vecteur de taille RR initialisé avec des vecteurs CC, chacun rempli de 0. Vous pouvez désormais accéder en toute sécurité aux éléments du vecteur matriciel en utilisant ce qui suit syntaxe :

<code class="cpp">matrix[i][j] = user_input;</code>

Exemple d'utilisation

Considérez l'exemple de code que vous avez fourni :

<code class="cpp">for(int i = 0; i < RR; i++)
{
    for(int j = 0; j < CC; j++)
    {
        cout << "Enter the number for Matrix 1";
        cin >> matrix[i][j];
    }
}</code>

En initialisant la matrice à l'aide de la méthode décrite ci-dessus, vous pouvez maintenant remplir la matrice en toute sécurité avec les entrées de l'utilisateur à l'aide de la boucle. L'erreur d'indice hors plage ne se produira plus car vous avez alloué la mémoire nécessaire pour la matrice.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn