와 회원이 컨테이너 내가 unique_ptr
s의 용기에 저장된 일부 데이터가 있다고 가정 :주문 STL
struct MyData {
int id; // a unique id for this particular instance
data some_data; // arbitrary additional data
};
// ...
std::vector<std::unique_ptr<MyData>> my_data_vec;
my_data_vec
의 순서가 중요합니다. 이제 가정 내가 MyDatas의 ID의 또 다른 벡터를 가지고 :
my_data_ids
에 의해 지정된 순서에 있는지
my_data_vec
는 재 배열 할
std::vector<int> my_data_ids;
. (unique_ptr
은 std::move()
으로 이동 의미가 필요함을 잊지 마십시오.)
알고리즘을 효율적으로 구현하는 방법은 무엇이며, STL 알고리즘은이를 달성하는 데 도움이됩니까? 나는 std::sort
어떤 도움이 될 것을 볼 수 없습니다.
편집 : O (n) 메모리 공간을 사용할 수 있지만 (메모리가 너무 걱정되지는 않음) ID는 임의적입니다 (실제로는 임의로 생성됩니다).
O (N) 공간을 사용할 수 있습니까? –
'id'는 임의적입니까? 아니면 0 ... n-1입니까? – Thomas
이 점에 답하기 위해 질문을 편집했습니다. – AshleysBrain