Why does string::find_first_of() return unexpected result?
<p>My code is following:</p>

<pre><code>string s_1 = "ssissippi";
string s = "si";
size_t pos = s_1.find_first_of(s);
while (pos != string::npos)
{
    cout &lt;&lt; pos &lt;&lt; endl;
    pos++;
    pos = s_1.find_first_of(s, pos);
}
</code></pre>

<p>And I get such result:
0,1,2,3,4,5,8.<br>
I can not figure out what leads to the answer. 
I will really appreciate for any help.</p>