std::vector bonne pratique
Bonjour,
j'aimerai savoir quelle est la meilleur pratique pour l'utilisation d'un std::vector.
Sachant que celui-ci fait une copie lors d'un push_back, vaut-il mieux insérer des pointeurs (intelligent ou non) ou insérer l'objet lui-même.
Quel est la meilleurs version :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
#include <vector>
#include <stdio.h>
#include <iostream>
int main()
{
std::vector<std::string*> vec_test;
std::string* s1 = new std::string("Blabla");
vec_test.push_back(s1);
for (std::vector<std::string*>::iterator it = vec_test.begin(); it!=vec_test.end(); ++it)
{
delete *it;
}
return 1;
} |
ou la version "simple" :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| #include <vector>
#include <stdio.h>
#include <iostream>
int main()
{
std::vector<std::string> vec_test;
std::string s1 = "Blabla";
vec_test.push_back(s1);
return 1;
} |
Je trouve la première plus efficace (pas de copie des données), mais il y a la gestion des pointeurs.