Как упомянуто, Java и итераторы C# описывают смешанное положение (состояние) - и-диапазон (значение), в то время как итераторы C++ разделяют понятие положения и диапазона. Итераторы C++ представляют, 'откуда я теперь' отдельно, 'куда я могу пойти?'.
Java и итераторы C# не могут быть скопированы. Вы не можете восстановить предыдущее положение. Общие итераторы C++ могут.
Рассматривают этот пример :
// for each element in vec
for(iter a = vec.begin(); a != vec.end(); ++a){
// critical step! We will revisit 'a' later.
iter cur = a;
unsigned i = 0;
// print 3 elements
for(; cur != vec.end() && i < 3; ++cur, ++i){
cout << *cur << " ";
}
cout << "\n";
}
Щелчок вышеупомянутая ссылка для наблюдения вывода программы.
Этот довольно глупый цикл проходит последовательность (использующий вперед только семантику итератора), печатая каждую непрерывную подпоследовательность 3 элементов точно однажды (и пара более коротких подпоследовательностей в конце). Но предполагая N элементы и элементы M на строку вместо 3, этот алгоритм все еще был бы O (N*M) инкременты итератора и O (1) пространство.
итераторы стиля Java испытывают недостаток в способности сохранить положение независимо. Вы будете или
, Так как только вперед итеративная механика использовалась в этом примере, я смог загрузить список с никакие проблемы . Это очень важно для авторской разработки универсальных алгоритмов, таково как поиск, задержанная инициализация и оценка, сортировка, и т.д.
, неспособность сохранить состояние соответствует наиболее тесно входному итератору STL C++, на котором создаются очень немного алгоритмов.
In Ubuntu, you can do apt-cache search libuuid
to see the available packages relating to the text libuuid
. Here's my output from Ubuntu 9.04:
$ apt-cache search libuuid
libuuid-perl - Perl extension for using UUID interfaces as defined in e2fsprogs
libuuid1 - universally unique id library
libuuid1-dbg - Debugging information for libuuid1
uuid-dev - universally unique id library - headers and static libraries
uuid-runtime - universally unique id library
libuuidm-ocaml-dev - Universally unique identifiers for OCaml
So I think the one you want is uuid-dev, and possibly uuid-runtime. Perform the command sudo apt-get install uuid-dev
, and it should install the headers and libraries you need to move on past the problem you're having.