Question: Following java code returns hash code of a string. 

```
String uri = "Some URI"
public int hashCode() {
    return uri.hashCode();
}

```

I want to translate this code to c++. Is there any function availabe in c++ or an easy way to translate this.

Answer: 
Boost provides a hash function:

[boost hash](http://www.boost.org/doc/libs/1_47_0/doc/html/hash.html)

```
#include <boost/functional/hash.hpp>

int hashCode()
{
    boost::hash<std::string> string_hash;

    return string_hash("Hash me");
}

```
The following is the source for the default `String.hashCode()` in Java, this is a trival exercise to implement in C++.

```
public int hashCode()  
{
       int h = hash;
       if (h == 0 && count > 0) 
       {
           int off = offset;
           char val[] = value;
           int len = count;

           for (int i = 0; i < len; i++) 
           {
               h = 31*h + val[off++];
           }
           hash = h;
       }
       return h;
   }

```