我有一個std::set<std::string>
,我想知道元素在插入後的確切位置。如何獲取一個元素的確切位置?
我試着用std::distance
但沒有任何運氣:
#include <iostream>
#include <string>
#include <set>
#include <iterator>
using namespace std;
int main (int argc, char const *argv[])
{
string array[] = { "zero", "one", "one", "zero", "two", "three", "zero" };
set<string> numbers;
for(size_t i = 0; i < 7; ++i)
{
int dist = distance(numbers.begin(), numbers.insert(array[i]).first);
cout << array[i] << "\t" << dist << endl;
}
return 0;
}
輸出:
zero 0
one 0
one 0
zero 1
two 1
three 1
zero 3
相反,我期待這樣的:
zero 0
one 1
one 1
zero 0
two 2
three 3
zero 0
任何想法?
我想我會'std :: map':)謝謝大家! –
2010-10-16 22:02:50
僅供參考我在http://gist.github.com/630346上發佈瞭解決方案 – 2010-10-16 22:34:51