下列代码中,就最后的两句不懂,望大神指点

#include
#include
#include
#include
#include
using namespace std;

int main()
{
string str1 = "wearehere!", str2 = str1;
reverse(str1.begin(), str1.end());
cout << str1 << endl;
copy(str1.begin(), str1.end(), str2.begin());
sort(str1.begin(), str1.end());
cout << str1 << endl;
cout << str2 << endl;
reverse_copy(str1.begin(), str1.end(), str2.begin());
cout << str2 << endl;
reverse(str2.begin() + 2, str2.begin() + 8);
copy(str2.begin() + 2, str2.begin() + 8, ostream_iterator(cout));
cout << endl;
sort(str1.begin(), str1.end(), greater());
cout << str1 << endl;
str1.swap(str2);
cout << str1 << " " << str2 << endl;
cout << (*find(str1.begin(), str1.end(), 'e') == 'e') << " "
<< (*find(str1.begin(), str1.end(), '0') == '0') << endl;
return 0;
}

std::find()

用法:find(first, end, value);

返回区间[first,end)中第一个值等于value的元素位置;若未找到,返回end。函数返回的是迭代器或指针,即位置信息。

find(str1.begin(), str1.end(), 'e')再取指针,如果找到,就 == 'e'

下面是寻找'0'