Bonjour, ou bien bonsoir, c'est selon.
Je vous expose mon probleme : j'ai un code qui compile et s'execute comme attendu... sous Visual C++ Express 2005 (donc VC8). Mais impossible de le compiler sous MinGW GCC (version 3.4.5), il me sort toujours les même erreurs.
Je fait appelle à vous pour deux choses :
* Premièrement, pourriez vous m'aider à faire compiler mon code avec cette satanée version de gcc, même s'il faut en modifier un bon morceau ?
* Et de deux, mais pas moins important, pourriez vous m'expliquer ce que veulent dire ces erreurs ?
Ci-dessous mon code, suivit des erreurs que sort gcc.
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 #include <iostream> #include <vector> #include <algorithm> using namespace std; struct box { long number; long tox_lvl; bool operator<( const box &right ) { if ( tox_lvl < right.tox_lvl ) return true; else if ( tox_lvl == right.tox_lvl ) return number < right.number; return false; } }; int main( int argc, char *argv[ ] ) { vector<box> vect; long N; cin >> N; vect.resize( N ); if ( N != 0 ) { for ( int i = 0; i < N; i++ ) { cin >> vect[i].number; cin >> vect[i].tox_lvl; } } sort( vect.begin( ), vect.end( ) ); for ( int i = 0; i < N; i++ ) cout << vect[i].number << " " << vect[i].tox_lvl << endl; return 0; }Merci, au moins d'avoir lu.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 C:\Program Files\CodeBlocks\MinGW\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\include\c++\3.4.5\bits\stl_algo.h:2482: instantiated from `void std::__introsort_loop(_RandomAccessIterator, _RandomAccessIterator, _Size) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<box*, std::vector<box, std::allocator<box> > >, _Size = int]' C:\Program Files\CodeBlocks\MinGW\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\include\c++\3.4.5\bits\stl_algo.h:2553: instantiated from `void std::sort(_RandomAccessIterator, _RandomAccessIterator) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<box*, std::vector<box, std::allocator<box> > >]' main.cpp:36: instantiated from here C:\Program Files\CodeBlocks\MinGW\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\include\c++\3.4.5\bits\stl_algo.h:90: error: passing `const box' as `this' argument of `bool box::operator<(const box&)' discards qualifiers C:\Program Files\CodeBlocks\MinGW\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\include\c++\3.4.5\bits\stl_algo.h:91: error: passing `const box' as `this' argument of `bool box::operator<(const box&)' discards qualifiers C:\Program Files\CodeBlocks\MinGW\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\include\c++\3.4.5\bits\stl_algo.h:93: error: passing `const box' as `this' argument of `bool box::operator<(const box&)' discards qualifiers C:\Program Files\CodeBlocks\MinGW\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\include\c++\3.4.5\bits\stl_algo.h:97: error: passing `const box' as `this' argument of `bool box::operator<(const box&)' discards qualifiers C:\Program Files\CodeBlocks\MinGW\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\include\c++\3.4.5\bits\stl_algo.h:99: error: passing `const box' as `this' argument of `bool box::operator<(const box&)' discards qualifiers :: === Build finished: 8 errors, 0 warnings ===
edit : quelques erreur etaient venues se loger dans le code.
De plus, j'ai tout à fait conscience de la faiblesse du code ! Il est seulement censé interpreter une ENTREE FORMATEE sur stdin et retourner le resultat de manière formatée sur stdout.
Le code n'a pas but d'être "bon", cependant, si vous avez des suggestion, je suis évidement prenneur, comme tout le monde (.... Ah non, on me fait signe que ce n'est pas le cas de tout le monde... ).
De plus, pour ma surcharge de l'opérateur <, j'ai regardé des exemples sur internet sans aucuns cours ni quoi que ce soit d'autre, c'est seulement une interpretation de ce que j'ai trouvé. Est-ce la bonne méthode (pour la surchage) ?
Partager