Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Wyszukiwanie elementu w zbiorze. (std::set)

Ostatnio zmodyfikowano 2016-03-27 22:00
Autor Wiadomość
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:
C/C++
#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; };
   
    //warości parametrów i całe wyrazy nie są obslugiwane
    //just in case:
    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 ] );
   
}
P-146617
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()
P-146618
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
P-146621
« 1 »
  Strona 1 z 1