Bonjour,
la compile du fichier recurs.cpp ne passe pas:
voici le fichier recurs.cpp en entier:
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 In file included from /usr/include/c++/11/vector:66, from recurs.cpp:3: /usr/include/c++/11/bits/stl_uninitialized.h:138:72: error: static assertion failed: result type must be constructible from value type of input range 138 | static_assert(is_constructible<_ValueType2, decltype(*__first)>::value, /usr/include/c++/11/bits/stl_uninitialized.h:138:72: note: ‘std::integral_constant<bool, false>::value’ evaluates to false In file included from /usr/include/c++/11/bits/char_traits.h:39, from /usr/include/c++/11/ios:40, from /usr/include/c++/11/ostream:38, from /usr/include/c++/11/iostream:39, from recurs.cpp:1: /usr/include/c++/11/bits/stl_algobase.h:385:25: error: no match for ‘operator=’ (operand types are ‘std::vector<std::__cxx11::basic_string<char> >’ and ‘std::__cxx11::basic_string<char>’) 385 | *__result = *__first; | ~~~~~~~~~~^~~~~~~~~~ In file included from /usr/include/c++/11/vector:72, from recurs.cpp:3: /
quelqu'un a une idée?
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 #include <iostream> #include <string> #include <vector> std::vector<std::vector<std::string>>productionstete(std::string tete,std::vector<std::vector<std::string>>const &grammaire_s); int main(){ std::vector<std::vector<std::string>>grammaire_s={ {"S","A","a"}, {"S","b"}, {"A","A","c"}, {"A","S","d"}, {"A","epsilon"} }; std::string tetej,tete; std::vector<std::string>gamma; std::vector<std::vector<std::string>>P; for(size_t i=0;i<grammaire_s.size();i++) for(size_t j=0;j<i;j++) if(grammaire_s[j][0]==grammaire_s[i][1]){ tetej=grammaire_s[j][0]; P=productionstete(tetej,grammaire_s); gamma=grammaire_s[i]; gamma.erase(gamma.begin(),gamma.begin()+2); tete=grammaire_s[i][0]; grammaire_s.erase(grammaire_s.begin()+i); for(auto p:P){ p.insert(p.end(),gamma.begin(),gamma.end()); grammaire_s.insert(grammaire_s.begin()+i,p.begin(),p.end()); } } for(auto p:grammaire_s){ for(auto s:p) std::cout<<s<<' '; std::cout<<std::endl; } } std::vector<std::vector<std::string>>productionstete(std::string tete,std::vector<std::vector<std::string>>const &grammaire_s){ std::vector<std::vector<std::string>>sortie; for(auto p:grammaire_s) if(p[0]==tete) sortie.push_back(p); return sortie; }
Partager