내 자신을 일반적인 방법으로 결합하는 방법 typedef 노드 { int data; int data1; 노드 * 다음} forward_list를 만드시겠습니까? 나는 노드 * 다음 (즉, typedef 노드 (int 데이터, int 데이터 1))를 버리고 STL이 forward_list를 통해 포인터를 관리하도록 만들 수 있다고 생각하지만 특정 노드에 대한 포인터를 어떻게 삭제합니까? forward_list에있는 표준 iterator는 long int이며 Node는 아닙니다 ; 그래서 노드를 사용하여 연결된 목록을 만들면 해당 목록에서 노드을 어떻게 삭제합니까?C++의 forward_list에 자신의 Node 구조를 갖는 방법은 무엇입니까?
0
A
답변
0
은 내가
예 이것은 당신이 내가 포인터를 삭제 어떻게
을해야 할 것입니다 옆에있는 노드 *을 던져하고 STL이 포인터를 관리 할 수 있다고 생각 특정 노드?
std::forward_list::remove
std::forward_list::erase_after
std::forward_list::remove_if
std::forward_list::pop_front
std::remove
std::remove_if
목록
, 나는 내 구조체 노드가 forward_list에 일단 당신이, 즉, 완전히 내 질문에 대답 생각하지 않습니다이 link어떻게 그 목록에서 노드를 삭제합니까에서 노드를 삭제하는 다른 알고리즘을 제공? 나는 forward_list에서 다시 노드 *을 얻는 방법
관련 문제
- 1. 두 구조를 갖는 동일한 변수
- 2. 다음과 같은 구조를 갖는 안드로이드에서 json 배열을 파싱하는 방법은 무엇입니까?
- 3. XSLT I는 다음의 구조를 갖는 XML을
- 4. 는 다음 클래스 계층 구조를 갖는 PHP
- 5. TouchXML, node objective-c의 텍스트 값을 얻습니다.
- 6. c의 노드에 전체 행을 삽입하는 방법은 무엇입니까?
- 7. xcode 프로젝트에서 트리 구조를 해제하는 방법은 무엇입니까?
- 8. 트리 데이터 구조를 구문 분석하는 방법은 무엇입니까?
- 9. 내가자는 다음과 같은 구조를 갖는 XML을 SimpleXML을
- 10. 엑셀 : I는 다음의 구조를 갖는 테이블이
- 11. cin에 자신의 delimeter를 제공하는 방법은 무엇입니까?
- 12. python에서 디렉토리에 '실행'하위 패키지를 갖는 방법은 무엇입니까?
- 13. Node Inspector (v0.12.8)를 Node v6.5.0과 함께 사용하는 방법은 무엇입니까?
- 14. 다른 유형의 부모를 갖는 방법은 무엇입니까?
- 15. 네트워킹을위한 자신의 작업에서 장기 실행 서비스를 갖는 것은
- 16. 동기화 프로듀서 배치 메시지를 갖는 방법은 무엇입니까?
- 17. XSL은 대한-각각의 특정 값이 같은 XML 구조를 갖는
- 18. objective-C 방법에서 구조를 반환하는 방법은 무엇입니까?
- 19. 동적 변수를 사용하여 구조를 만드는 방법은 무엇입니까?
- 20. Node + Express : req 및 res 변수가 충돌을 일으키지 않고 전역 범위를 갖는 방법은 무엇입니까?
- 21. 그래프 구조를 직렬화하는 방법은 무엇입니까?
- 22. JNA에서 구조를 만드는 방법은 무엇입니까?
- 23. 배열에 구조를 추가하는 방법은 무엇입니까?
- 24. 구조를 참조로 전달하는 방법은 무엇입니까?
- 25. 계층 구조를 만드는 방법은 무엇입니까?
- 26. 데이터 구조를 설계하는 방법은 무엇입니까?
- 27. 태그 기반 조직에서 구조를 정의하는 방법은 무엇입니까?
- 28. 이 항목 구조를 모델링하는 방법은 무엇입니까?
- 29. git으로이 프로젝트 구조를 관리하는 방법은 무엇입니까?
- 30. 디렉토리 구조를 유지하면서 리포지토리를 결합하는 방법은 무엇입니까?
의 예에 따라? 예를 들어 누군가가 함수를 작성하라고 요구합니다. removeNodefromList (forward_list input_list, Node * to_remove) - 어떻게 작성하겠습니까? 반복자를 사용하여 요소를 반복하는 경우 각 요소가 Node * –
user2044989
인데도 Node *를 돌려받을 수 없습니다. removeNodefromList와 같은 함수로 대체해야합니다 (forward_list, std :: forward_list :: const_iterator)'를 사용하고 표준 삭제 알고리즘을 사용합니다. C++ 라이브러리를 사용하면 포인터 대신에 반복자를 사용하려고합니다. 이 상황에서'std :: list'가 더 효율적이라는 것에주의하십시오. –
물론 iterator로 바뀌면 사소한 일입니다. 그래서 누군가가 나에게 구조체 노드를 제공하고 그 중에서 하나의 링크 된 목록을 만들 것을 요청한다면, 나는 그 경우에 forward_list STL을 사용해서는 안된다. 설계자는 반복자에 대한 개념이 없으므로 Node와 Node *에서 모든 API를 작성하도록 요청할 것이기 때문에 Node *에서 반복자로 API를 다시 정의하는 것은 괜찮지 않을 것입니다. 그래서 나는 내 자신의 linkedlist 클래스를 작성하고 포인터를 직접 처리해야합니까? – user2044989