Как я получаю/использую LibUUID?

Как упомянуто, 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 испытывают недостаток в способности сохранить положение независимо. Вы будете или

  • , теряют O (1) пространство, с помощью (например), массив размера M для хранения истории, поскольку Вы выполняете итерации
  • , должен будет пересечь список N времена, делая O (N^2+N*M) время
  • или использовать конкретный Тип массива с функцией членства GetAt, проигрывая genericism и способностью использовать типы контейнера связанного списка.

, Так как только вперед итеративная механика использовалась в этом примере, я смог загрузить список с никакие проблемы . Это очень важно для авторской разработки универсальных алгоритмов, таково как поиск, задержанная инициализация и оценка, сортировка, и т.д.

, неспособность сохранить состояние соответствует наиболее тесно входному итератору STL C++, на котором создаются очень немного алгоритмов.

38
задан Azeem 27 June 2018 в 05:21
поделиться

1 ответ

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.

66
ответ дан 27 November 2019 в 03:27
поделиться