Explication détaillée de l'utilisation des vecteurs C++

藏色散人
Libérer: 2020-03-06 10:55:00
original
3395 Les gens l'ont consulté

Explication détaillée de l'utilisation des vecteurs C++

Explication détaillée de l'utilisation du vecteur C++

le vecteur est un membre important de C++ STL Lorsque vous l'utilisez, vous. besoin d'inclure le fichier d'en-tête :

#include<vector>;
Copier après la connexion

1. Initialisation du vecteur : Il existe cinq façons, les exemples sont les suivants :

Recommandé : "Tutoriel C++"

(1 ) vector a(10); //Un vecteur de 10 éléments entiers est défini (le nom du type d'élément est entre crochets, qui peut être n'importe quel type de données légal), mais aucune valeur initiale n'est donné, et sa valeur est incertaine.

(2) vector a(10,1); //Un vecteur de 10 éléments entiers est défini, et la valeur initiale de chaque élément est donnée comme 1

( 3 ) vector a(b); //Utiliser le vecteur b pour créer un vecteur, affectation de copie globale

(4) vector //La valeur de a est définie comme le 0ème au 2ème (total 3) éléments dans b

(5) int b[7]={1,2,3,4,5 ,9,8} ;

  vector a(b,b+7); //Obtenir la valeur initiale du tableau

2. Plusieurs opérations importantes sur les objets vectoriels, exemples La description est la suivante :

(1) a.assign(b.begin(), b.begin()+3); //b est un vecteur, attribuez le vecteur composé de 0~2 éléments de b à a

(2) a.assign(4,2); // a ne contient que 4 éléments, et chaque élément est 2

(3) a.back(); element of a

(4) a.front(); // Renvoie le premier élément de a

(5) a[i]; // Renvoie a Le i-ème élément de , si et seulement si a[i] existe 2013-12-07

(6) a.clear(); //Effacer l'élément dans un

(7 ) a.empty(); ); // Détermine si a est vide. S'il est vide, renvoie true, s'il n'est pas vide, renvoie false

(8) a.pop_back();

(9) a.erase(a.begin()+1,a.begin()+3); //Supprimer le 1er (du 0ème) au 2ème élément dans a , c'est-à-dire les éléments supprimés sont comptés de a.begin()+1 (l'incluant) à a.begin()+ 3 (l'excluant)

(10) a.push_back(5) //Insérer un élément après le dernier vecteur de a, sa valeur est 5

(11) a.insert(a.begin()+1,5); //Insérer le premier élément de a Insérer la valeur 5 à la position de l'élément (en comptant à partir du 0ème). Par exemple, si a vaut 1,2,3,4, après avoir inséré l'élément, ce sera 1,5,2,3,4

(12). ) a. insert(a.begin()+1,3,5); //Insérer 3 nombres à la position du premier élément de a (en comptant à partir de 0), et leurs valeurs sont toutes 5

(13) a.insert(a.begin()+1,b+3,b+6); //b est un tableau, insérez b à la position du premier élément de a (en comptant à partir du 0ème) ) Du 3ème élément au 5ème élément (hors b+6), si b vaut 1,2,3,4,5,9,8, après avoir inséré l'élément, ce sera 1,4,5,9,2, 3, 4,5,9,8

(14) a.size(); //Renvoie le nombre d'éléments dans a

(15) a.capacity( /); /Return Le nombre total d'éléments que a peut accueillir dans la mémoire

(16) a.resize(10); //Ajuster le nombre existant d'éléments de a à 10, supprimer s'il est supérieur, et remplir si c'est moins. Sa valeur est aléatoire

(17) a.resize(10,2); //Ajuster le nombre d'éléments existants de a à 10, supprimer plus si c'est plus et compléter. si moins. Sa valeur est 2

(18) a.reserve(100); //Agrandit la capacité de a à 100, ce qui signifie que lors du test de a.capacity(); 100. Cette opération ne peut être effectuée que lorsque cela n'a de sens que lorsque vous devez ajouter une grande quantité de données à un, car cela évitera plusieurs opérations d'extension de capacité de mémoire (l'ordinateur s'étendra automatiquement lorsque la capacité de a est insuffisante, de bien sûr, cela réduira inévitablement les performances)

(19) a.swap(b); //b est un vecteur, échangez les éléments de a et les éléments de b dans leur ensemble

( 20) a==b; //b est un vecteur, comparaison des vecteurs Les opérations incluent !=,>=,<=,>,<

3. Plusieurs façons d'accéder au vecteur de manière séquentielle , les exemples sont les suivants :

(1) Vecteur a Ajouter des éléments à

 vector<int> a;
for(int i=0;i<10;i++)
a.push_back(i);
Copier après la connexion

2 Vous pouvez également sélectionner des éléments du tableau à ajouter au vecteur

int a. [6]={1,2,3,4,5,6};

vecteur b;

pour(int i=1;i<=4;i++)

b.push_back(a[i]);

3. Vous pouvez également sélectionner des éléments du vecteur existant à ajouter au vecteur

int a[6]= {1,2,3,4,5,6};

vecteur b;

vecteur >for(vector::iterator it=c.begin();it< c.end();it++)

b.push_back(*it);

4. Vous pouvez également lire des éléments du fichier et ajouter

ifstream in("data.txt");
vector<int> a;
for(int i; in>>i)
    a.push_back(i);
Copier après la connexion

5 au vecteur, [Malentendu]

vector<int> a;
for(int i=0;i<10;i++)
    a[i]=i;
//这种做法以及类似的做法都是错误的。刚开始我也犯过这种错误,后来发现,下标只能用于获取已存在的元素,而现在的a[i]还是空的对象
Copier après la connexion

(2) Lecture d'éléments à partir de vecteurs

1.

int a[6]={1,2,3,4,5,6};
vector<int> b(a,a+4);
for(int i=0;i<=b.size()-1;i++)
    cout<<b[i]<<" ";
Copier après la connexion

2. Lecture des traverseurs

int a[6]={1,2,3,4,5,6};
vector<int> b(a,a+4);
for(vector<int>::iterator it=b.begin();it!=b.end();it++)
    cout<<*it<<" ";
Copier après la connexion

Quatre plusieurs algorithmes importants doivent inclure des fichiers d'en-tête lors de leur utilisation :

#include<algorithm>
Copier après la connexion

(1) sort(a.begin(). ,a.end()); //Pour a Les éléments de a.begin() (l'incluant) à a.end() (l'excluant) sont classés du plus petit au plus grand

(2)reverse(a.begin(),a.end()); //Pour les éléments de a de a.begin() (l'incluant) à a.end() (l'excluant) Inverser, mais pas arranger. Par exemple, les éléments de a sont 1,3,2,4 Après inversion, ils sont 4,2,3,1

(3) copy(a.begin(),a. .end( ),b.begin()+1); //Copiez les éléments de a de a.begin() (l'incluant) vers a.end() (en l'excluant) vers b, depuis b.begin( ) +1 position (y compris) et commencez à copier, en écrasant l'élément d'origine

(4) find(a.begin(),a.end(),10); élément de a.begin() (l'incluant) à a.end() (l'excluant), et s'il existe, renvoie sa position dans le vecteur

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!

Étiquettes associées:
c++
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!