چرا حالا تو c++11 شما به راحتی با یک حلقه for و یک if می تونید اینکارو انجام بدید گاهی اوقات استفاده از stl کد شما را ناخوانا می کنه.
به کد زیر دقت کنید :
#include <vector>
#include <iostream>
#include <stdlib.h>
#include <algorithm>
using namespace std;
int main()
{
vector<int> items(10);
int value = 2;
cout << "list:" << endl;
for (auto &item :items)
{
item = rand() %4;
cout << item << endl;
}
cout << "indexs non stl:" << endl;
for (size_t i=0; i < items.size();i++)
if (value == items[i])
cout << i << endl;
cout << "indexs stl:" << endl;
vector<int>::iterator p ;
for (auto it = items.begin();(p = std::find(it,items.end(),value))!= items.end();it = ++p)
cout << std::distance(items.begin(),p) << endl;
return 0;
]