Quelles sont les vecteurs et comment sont-ils utilisés dans la programmation?
Je suis familier avec les mathématiques/physique de la notion de vecteur comme une grandeur et une direction, mais j'ai aussi garder à venir à travers des références à des vecteurs dans le contexte de la programmation (par exemple C++ semble avoir un stl::vector bibliothèque qui arrive assez fréquemment, DONC).
Mon intuition à partir du contexte a été qu'ils sont assez primitifs construire le plus souvent utilisé pour représenter quelque chose le long des lignes d'une longueur variable array (stockage de sa taille comme la grandeur, je présume), mais il serait très utile si quelqu'un pouvait me fournir une explication plus complète, de préférence compris comment et pourquoi ils sont utilisés dans la pratique.
- Adam réponse semble avoir toutes les informations dont vous avez besoin. Avez-vous tout simplement oublié de marquer cette acceptée ou est-il quelque chose que vous ne comprenez toujours pas?
Vous devez vous connecter pour publier un commentaire.
De http://www.cplusplus.com/reference/stl/vector/
En outre, les vecteurs peuvent généralement contenir n'importe quel objet - de sorte que vous pouvez faire une classe pour contenir des informations sur les véhicules, puis magasin de la flotte dans un vecteur.
Belles choses sur les vecteurs, à part le redimensionnement, est qu'ils continuent à autoriser l'accès en temps constant des éléments individuels via l'indice, tout comme un tableau.
Le compromis pour le redimensionnement, c'est que lorsque vous appuyez sur la capacité actuelle il doit réaffecter, et parfois même de les copier de la mémoire. Cependant, la plupart de la capacité croissante des algorithmes de doubler la capacité d'accueil chaque fois que vous frappez la barrière, de sorte que vous ne jamais frapper plus que log2(segment de mémoire disponible) qui s'avère être peut-être une douzaine de fois, dans le pire des cas pour l'ensemble de l'opération du programme.
-Adam
En mathématiques, un vecteur peut être considéré comme une combinaison de direction et de l'ampleur. Cependant, il peut également être considéré comme un système de coordonnées. Par exemple, un vecteur de magnitude 5 et un angle d'environ 37 degrés sur l'horizontale représente un point sur un plan 2D. Ce point peut également être représenté avec les coordonnées Cartésiennes de la paire (3, 4). Cette paire (3, 4) est aussi un vecteur mathématique.
Dans la programmation, ce nom de "vecteur" était à l'origine utilisé pour décrire toute la longueur fixe de la séquence de scalaire numéros. Un vecteur de longueur 2 représente un point dans un plan en 2D, un vecteur de longueur 3 représente un point dans un espace 3D, et ainsi de suite. Un vecteur de longueur 100 représente un point dans un 100 dimensions de l'espace (les mathématiciens ont aucun mal à penser à de telles choses).
Moderne bibliothèques de programmation, ce nom de "vecteur" est venu signifie généralement un variable de taille moyenne de la séquence de valeurs (pas nécessairement des nombres). Modification de la taille (longueur, ou la dimensionnalité) d'un vecteur mathématique n'est pas quelque chose que vous feriez normalement, sauf si vous êtes en train de faire une sorte de projection de l'opération. Mais la modification de la longueur d'un vecteur de programmation qui contient une séquence de chaînes peuvent être une opération commune.
La mathématique vecteurs vous êtes habitués sont les tenseurs de rang un; les structures de données en informatique ne sont pas forcément d'obéir le tenseur des règles de transformation. Ils sont juste des tableaux qui peuvent se dilater et se contracter, comme indiqué précédemment.
Vecteur des conteneurs sont mis en œuvre comme des tableaux dynamiques; en tant que matrices, vecteurs, les conteneurs sont leurs éléments stockés dans contiguë emplacements de stockage, ce qui signifie que leurs éléments peuvent être accessibles en utilisant non seulement les itérateurs, mais aussi en utilisant des décalages régulier sur les pointeurs vers des éléments.
Mais contrairement à des matrices de stockage dans des vecteurs est gérée automatiquement, permettant d'être étendue et rétractée tant que de besoin.
Vecteurs sont bons à:
REF
Depuis au moins deux des autres réponses sont collées à partir de ce site, vous pouvez aussi lire le reste de la description de l'... 🙂
Je comprends votre confusion des noms (j'ai l'habitude d'être troublés par cette trop). Il n'est pas aidé par l'idée d'un Vecteur graphiques 3D, programmation, qui est plus proche de la définition mathématique. En mathématiques, un Vecteur peut être considéré comme un 1-dimensions de la matrice de longueur arbitraire (avec la longueur étant le nombre de dimensions de votre système de coordonnées). Dans la plupart des langages à objets, les vecteurs sont essentiellement 1-dimensions des matrices (tableaux), d'où le nom. Ils n'ont rien à voir avec les coordonnées à moins que le programmeur décide de les utiliser pour cette tâche (ce qui est rare -- je ne l'ai jamais vu). De plus, elles n'ont généralement pas tout opérateurs mathématiques pour faire de la multiplication de matrice ou toutes autres opérations similaires. Ainsi, le 1-nature tridimensionnelle d'entre eux est à propos de la ressemblance s'arrête là. Je vais laisser les autres réponses pour expliquer les caractéristiques et les utilisations de l'OO conteneur, où ils ont déjà une poignée de.
De la SICP livre:
https://isocpp.org/wiki/faq/containers a beaucoup de l'information que vous avez besoin de comprendre ce qui entoure cette question. Il contraste des vecteurs liés à des listes, des tableaux, et ainsi de suite.
Aussi, à partir de Stroustrup Tour (http://www.stroustrup.com/Tour.html), chapitre 9:
Donc un vecteur STL est une collection de valeurs du même type—dans ce sens, c'est comme le sens mathématique du vecteur/module—mais le principal problème est la façon dont les éléments sont stockés.
En plus de la structure de données en C++, un vecteur est aussi un terme pour un pointeur vers le code. F. e. un vecteur d'interruption des points à l'interruption de code pour être invoqué.
Pour vous aider à vous souvenir de la CS sens du mot “vecteur”, il peut être utile de se référer à la racine latine vehere, qui signifie à la communication ou à transporter. Ainsi, un vecteur porte ou contient des choses, d'une manière générale.
Vecteurs dans la programmation de coeur, tableaux dynamiques, dans lequel le stockage est géré automatiquement en permettant l'étendue et rétractée tant que de besoin.La meilleure chose est qu'ils permettent aussi d'accéder en temps constant des éléments individuels via l'index, comme un tableau normal.