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 :
ou la version "simple" :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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; }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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.
Partager