저는 정수 벡터를 가지고 있으며 그 목록에서 많은 이동, 잘라내 기 및 변경 작업을 수행해야합니다. 하지만 ... 나는 주로 그 가치가 무엇인지에 따라 그 항목에 접근해야 할 것입니다.해당 항목에 대한 참조 벡터에서 연결된 목록 항목에 액세스하십시오.
그래서 내가 정리 한 것은 re-ordering 작업을 용이하게 할 std :: list (double-linked-list)를 사용하는 아이디어입니다. 그런 다음 정수 값으로 인덱싱 된 벡터를 생성합니다. 여기서 값은 std :: list 항목에 대한 참조 벡터입니다. 그렇게하면 목록의 특정 값을 찾기 위해 링크 된 전체 목록을 반복 할 필요가 없습니다. 이렇게 작은 참조 벡터를 갖게 될 것입니다.
어떻게 설정해야할지 모르겠다. 내가 붙어있어 어디 LinkedList의에 '원래'항목을 누르면
이vector<int> original = { 1, 1, 0, 2, 1, 3, 1, 0 };
vector<vector<int*>> byNumber(4);
list<int> linkedList;
for (int i = 0; i < original.size(); ++i) {
linkedList.push_back(original[i]);
byNumber[original[i]].push_back(*linkedList[i]);
}
충분히 쉽게,하지만 byNumber에 대한 참조를 만드는 : 여기
내가 뭘하려고했는지의 샘플입니다 에. 나는&(*linkedList[i])
도 시도했다. 나는 이것을하기 위해 어떤 구문을 사용할 수 있는지, 그것이 가능할 지 여부에 대해서는 분명하지 않다. 또한 int * 대신 unique_ptr을 사용하여 손을 've습니다. 너무 문제가있는 경우 다시 전환 할 수 있습니다.
'int *'는 목록 항목에 대한 참조가 아닙니다. * iterators *를 저장할 수도 있습니다. –