Вы можете использовать его, когда вам нужно провести массив ссылок на объекты. Таким образом, я могу сортировать массив ссылок, не перемещая объекты в памяти.
#include <algorithm>
#include <iostream>
#include <memory>
#include <vector>
int main()
{
std::shared_ptr<int> foo(new int(3));
std::shared_ptr<int> baz(new int(5));
std::vector<std::shared_ptr<int> > bar;
bar.push_back(baz);
bar.push_back(foo);
std::sort(bar.begin(), bar.end(), [](std::shared_ptr<int> a, std::shared_ptr<int> b)
{
return *a < *b;
});
for(int i = 0; i < bar.size(); ++i)
std::cout << *bar[i] << std::endl;
return 0;
}
Печать:
3
5
Можете ли вы привести пример того, что именно вы имеете в виду? – csnate
std :: vector> –
user2591935
'vector' управляет памятью указателями, а не целыми числами. См. [Этот вопрос] (http://stackoverflow.com/q/8036474/166749). –