La classe vector s’appelle comme ça car elle correspond aussi à la définition d’un vecteur mathématique
std::vector et le Vector de rewind contiennent les mêmes données: un tableau de nombres contigüe en mémoire, dans les deux cas ce sont bien les données d'un vecteur au sens mathématique, sauf que les méthodes portées par l'objet n'ont rien à voir:
ici de quoi agrandir et rétrecir un conteneur de données (collection, container, choisis le vocabulaire que tu veux) ayant la complexité algorithmique d'un tableau dynamique: http://en.cppreference.com/w/cpp/container/vector
vecteur mathématique (y a-t-il d’autres types de vecteurs?)
bah rien qu'en maths on ne les manipule pas exactement pareil quand on fait de la géométrie ou de l'algèbre linéaire (même si on peut les identifier et passer de l'un à l'autre)
et quand on programme, par delà la topologie des octets en mémoire, les opérations qu'on peut faire (méthodes et opérateurs) changent beaucoup et justifient assez largement, si je peux me permettre, de ne pas utiliser std::vector pour faire de la géométrie
et, de façon plus déterminante encore, quand tu sors du monde du c++ pour aller dans le monde du rendering graphique, pouvoir directement caster ton template en float[] ou unsigned[] et savoir que son sizeof sera exactement le même a une certaine valeur, du coup tu ne veux pas d'un tableau dynamique mais bien d'un tableau statique
[^] # Re: Conteneurs
Posté par DerekSagan . En réponse à la dépêche SDL ou SFML ? Ne choisissez plus, prenez Gamedev Framework (gf). Évalué à 2.
std::vector et le Vector de rewind contiennent les mêmes données: un tableau de nombres contigüe en mémoire, dans les deux cas ce sont bien les données d'un vecteur au sens mathématique, sauf que les méthodes portées par l'objet n'ont rien à voir:
ici de quoi agrandir et rétrecir un conteneur de données (collection, container, choisis le vocabulaire que tu veux) ayant la complexité algorithmique d'un tableau dynamique:
http://en.cppreference.com/w/cpp/container/vector
ici les produits vectoriels, normes (euclidienne, Manhattan, etc.) et autres opérations qu'on attends pour manipuler des vecteurs au sens géométriques:
https://github.com/GamedevFramework/gf/blob/master/include/gf/Vector.h
bah rien qu'en maths on ne les manipule pas exactement pareil quand on fait de la géométrie ou de l'algèbre linéaire (même si on peut les identifier et passer de l'un à l'autre)
et quand on programme, par delà la topologie des octets en mémoire, les opérations qu'on peut faire (méthodes et opérateurs) changent beaucoup et justifient assez largement, si je peux me permettre, de ne pas utiliser std::vector pour faire de la géométrie
et, de façon plus déterminante encore, quand tu sors du monde du c++ pour aller dans le monde du rendering graphique, pouvoir directement caster ton template en float[] ou unsigned[] et savoir que son sizeof sera exactement le même a une certaine valeur, du coup tu ne veux pas d'un tableau dynamique mais bien d'un tableau statique