Wyszukiwanie elementu w zbiorze. (std::set)
Ostatnio zmodyfikowano 2016-03-27 22:00
Rashmistrz Temat założony przez niniejszego użytkownika |
Wyszukiwanie elementu w zbiorze. (std::set) » 2016-03-27 21:21:21 Próbowałem jakoś sprawdzić czy dany element istnieje już w danym zbiorze, ale niestety coś mi nie wychodzi i wywala błąd: ||=== Build file: "no target" in "no project" (compiler: unknown) ===| E:\CACHE\011\XOXOXO\params.hpp||In member function 'bool params::specifed(char)':| E:\CACHE\011\XOXOXO\params.hpp|13|error: cannot call member function 'std::set<_Key, _Compare, _Alloc>::iterator std::set<_Key, _Compare, _Alloc>::end() const [with _Key = char; _Compare = std::less<char>; _Alloc = std::allocator<char>; std::set<_Key, _Compare, _Alloc>::iterator = std::_Rb_tree_const_iterator<char>]' without object| ||=== Build failed: 1 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|
Kod: #include <set> using std::set;
class params { set < char > parameters; public: params() { }; params( int, char *[] ); bool specifed( char ch ) { return( parameters.find( ch ) == set < char >::end() ) ? false : true; }; bool specifed( char[] ) { return false; }; int value_of( char ) { return 0; } int value_of( char[] ) { return 0; } };
params::params( int argc, char * argv[] ) { for( int n = 1; n < argc; n++ ) if( argv[ n ][ 0 ] == '-' || argv[ n ][ 0 ] == '/' && strlen( argv[ n ] ) ) parameters.insert( argv[ n ][ 1 ] ); }
|
|
michal11 |
» 2016-03-27 21:35:13 end() nie jest metoda statyczną, więc nie może być wywoływana set < char >::end() moim zdaniem (ale tego nie sprawdzałem) powinno być parameters.end() |
|
Rashmistrz Temat założony przez niniejszego użytkownika |
» 2016-03-27 22:00:36 Poprawnie powinno być: set::end lub (tak jak mówisz) parameters.end() . Machnąłem się po prostu z tymi nawiasami. xD |
|
« 1 » |