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

Haszowanie

Ostatnio zmodyfikowano 2014-06-19 18:59
Autor Wiadomość
Monika90
» 2014-06-19 18:59:56
czy daloby sie wyeliminowac przypadek gdyby ktos chcial sobie uzyc jednoczesnie dwoch roznych typow ?
chodzi ci o taki przypadek?
C/C++
HashSet < int, Method1 < std::string >> set1;

Można, sposobów jest wiele, tytułem eksperymentu możesz spróbować takiego:
C/C++
#include <string>

template < class Method >
class HashSet
{
public:
    typedef typename Method::value_type value_type;
    void insert( const value_type & );
    void remove( const value_type & );
    bool search( const value_type & ) const;
   
private:
    Method m_;
};

struct Method1Int
{
    typedef int value_type;
    int operator ()( value_type ) const
    {
        //haszuj int sposobem pierwszym
    }
};

struct Method1String
{
    typedef std::string value_type;
    int operator ()( const value_type & str ) const
    {
        //haszuj string sposobem pierwszym
    }
};

struct Method2Int
{
    typedef int value_type;
    int operator ()( value_type ) const
    {
        //haszuj int sposobem drugim
    }
};

struct Method2String
{
    typedef std::string value_type;
    int operator ()( const value_type & str ) const
    {
        //haszuj string sposobem drugim
    }
};

int main()
{
    HashSet < Method1Int > set1;
    HashSet < Method2Int > set2;
    HashSet < Method1String > set3;
    HashSet < Method2String > set4;
}
P-112336
1 « 2 »
Poprzednia strona Strona 2 z 2