Comment utiliser la fonction de suppression de vecteur en C
Feb 18, 2024 am 11:29 AMSupprimer l'utilisation du vecteur en C nécessite des exemples de code spécifiques
Introduction : le vecteur en langage C est un tableau dynamique dont la taille peut être ajustée au moment de l'exécution. Il s'agit d'une structure de données très couramment utilisée pour stocker et manipuler plusieurs objets. Dans les applications pratiques, nous devons souvent insérer de nouveaux éléments dans des vecteurs ou supprimer des éléments existants. Cet article présentera en détail l'utilisation de la suppression de vecteurs en langage C et donnera des exemples de code correspondants.
- Prototype de la fonction de suppression de vecteur : void remove(vector *v, int index)
Il y a deux paramètres dans le prototype de la fonction Le premier paramètre est le pointeur vectoriel et le deuxième paramètre est l'index de l'élément à être. supprimé. Cet index commence à compter à partir de 0 et représente la position de l'élément à supprimer dans le vecteur.
- Exemple de code :
#include <stdio.h> #include <stdlib.h> // 定义vector结构体 typedef struct { int *data; // 存储元素的数组 int size; // 当前元素个数 int capacity; // 容量 } vector; // 初始化vector void initVector(vector *v) { v->size = 0; v->capacity = 4; v->data = (int *)malloc(sizeof(int) * v->capacity); } // 向vector中插入元素 void insert(vector *v, int value) { // 如果当前元素个数等于容量,需要重新分配内存 if (v->size == v->capacity) { v->capacity *= 2; v->data = (int *)realloc(v->data, sizeof(int) * v->capacity); } v->data[v->size] = value; v->size++; } // 删除vector中的元素 void remove(vector *v, int index) { // 检查索引是否合法 if (index < 0 || index >= v->size) { printf("Invalid index"); return; } // 将后面的元素向前移动 for (int i = index; i < v->size - 1; i++) { v->data[i] = v->data[i + 1]; } v->size--; // 如果元素个数小于容量的一半,缩小容量 if (v->size <= v->capacity / 2) { v->capacity /= 2; v->data = (int *)realloc(v->data, sizeof(int) * v->capacity); } } int main() { vector v; initVector(&v); // 向vector中插入元素 insert(&v, 1); insert(&v, 2); insert(&v, 3); insert(&v, 4); // 打印vector中的元素 printf("Before remove: "); for (int i = 0; i < v.size; i++) { printf("%d ", v.data[i]); } printf(" "); // 删除vector中的元素 remove(&v, 1); // 打印删除后的vector中的元素 printf("After remove: "); for (int i = 0; i < v.size; i++) { printf("%d ", v.data[i]); } printf(" "); return 0; }
Description du code :
- Implémentez la fonction de vecteur en définissant une structure. La structure contient un pointeur data de type int, qui représente un tableau dynamique. Il existe également des champs de taille et de capacité, qui indiquent respectivement le nombre actuel d'éléments et la capacité.
- La fonction initVector est utilisée pour initialiser le vecteur, définir la taille et la capacité sur 0 et allouer la mémoire initiale pour les données.
- La fonction d'insertion est utilisée pour insérer des éléments dans un vecteur. Si le nombre actuel d'éléments est égal à la capacité, la mémoire doit être réaffectée. La fonction
- remove est utilisée pour supprimer des éléments dans un vecteur. Selon l'indice donné, les éléments suivants sont avancés et la capacité est réduite.
- Dans l'exemple de code, quatre éléments sont d'abord insérés dans le vecteur, puis l'élément d'index 1 est supprimé.
Résumé :
Cet article présente l'utilisation du vecteur de suppression en langage C et donne des exemples de code correspondants. A travers cet exemple, nous pouvons clairement voir comment insérer des éléments dans le vecteur, comment supprimer des éléments et gérer la gestion de la mémoire correspondante. Ces opérations sont ce que nous rencontrons souvent dans les projets réels. Maîtriser l’utilisation de cette structure de données est très utile pour les programmeurs en langage C.
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!

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Utilisation de la structure typedef en langage C

VSCode et VS C++ IntelliSense ne fonctionnent pas ou ne récupèrent pas les bibliothèques

Explication détaillée du développement du minuteur du noyau Linux et du pilote de travail différé

Comprendre la gestion de la mémoire des pointeurs de fonction C++ : éviter les pièges de pointeur

Correction du code d'erreur Xbox 8C230002

Comment écrire du code simple pour les feux d'artifice en langage C

La différence entre la structure typedef et la structure en C++

Transformez le code avec des pointeurs de fonctions C++ : améliorez l'efficacité et la réutilisabilité
