Bonjour à tous,
suite à de bonnes critiques sur AC++, je m'y met, avec mon anglais pas terrible, j'avance peut être un peu moins vite, mais ça va.
J'en suis au chapitre III, le chapitre ou ils introduisent la notion de vector. tout d'abord, voici le code fourni pour exemple (et expliqué) :
Voilà, alors tout d'abord, je récapitule ce que j'ai compris :
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
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60 #include <iostream> #include <iomanip> #include <ios> #include <string> #include <vector> #include <algorithm> using std::cin; using std::cout; using std::endl; using std::setprecision; using std::string ; using std::streamsize; using std::vector; using std::sort; int main() { cout <<"Entre ton nom : "; string name; cin >> name; cout << "Hello, " << name << "!" << endl; cout << "entre ton midterm et final exam grades:"; double midterm, final; cin >> midterm >> final ; cout << "Enter all your homework grades, " "followed by end of file" ; vector<double> homework; double x; while (cin >> x) { homework.push_back(x); } typedef vector<double>::size_type vec_sz; vec_sz size = homework.size(); if (size == 0) { cout << endl << "You must enter your grades. " "Please try again" ; return 1; } sort(homework.begin(), homework.end()); vec_sz mid = size / 2; double median; median = size % 2 == 0 ? (homework[mid] + homework[mid - 1]) / 2 : homework[mid]; streamsize prec = cout.precision(); cout << "Your final grades is " << setprecision(3) << 0.2 * midterm + 0.4 * final + 0.4 * median << setprecision(prec) << endl; return 0; }
Un vector, sert à stocker des valeurs, un peu comme un tableau ?
Seulement voilà: quand on déclare un vector on fait comme suit :Quand on enregistre les valeurs dedans à l'aide d'une boucle, je ne comprend pas pourquoi dans le code en haut, on rajoute une partie :
Code : Sélectionner tout - Visualiser dans une fenêtre à part vector<type>::nom_vector;Pourquoi ne pas faire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 while (cin >> x) { homework.push_back(x); }
?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 while (cin >> x) { homework(x); }
push_back, signifie quelque chose de préderterminée, comme par exemple .size() ?( pour déterminer la taille d'un string ou vector...etc)
Si la réponse est négative,, alors on peut en créer autant qu'on en souhaite ? Mais quel interêt ?
Encore une petite incompréhension de cette partie de code :
J'ai bien compris la syntaxe de la structure conditionelle ! ( x == x ? y : z
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 median = size % 2 == 0 ? (homework[mid] + homework[mid - 1]) / 2 : homework[mid];c'est ce qui a à l'intérieur,
, a ma souvenance, mid, on l'a déclaré nul part
Code : Sélectionner tout - Visualiser dans une fenêtre à part (homework[mid] + homework[mid - 1]) / 2, à quoi sert t'il ?, lorsqu'on prend un vector et qu'on ajoute un paramètre entre crochets, que signifie ça ?
Pour là, on ne prend pas le .push_back() au lieu de homework ?
Merci beaucoup, et désolé du gro pavé, j'espère avoir été assez claire !
Partager