컨테이너 목록을 배우고 있습니다. 그리고 (인덱스에 요소), 삽입 (인덱스에 대한 요소) 바꾸려면 함수를 작성하고 그들을 삭제하는 방법을 알고 싶습니다. 나는 비디오를보고 기사를 읽은 지 이틀 만에 이것을 배우고 있지만이 코드를 작성하는 방법을 모르겠습니다. 목록 작업과 포인터의 관계를 알고 있습니다. 컨테이너 목록으로 함수를 구현하는 방법
이
내가 (그냥 시작이다) 상상하는 방법이다void replace(list<Contact> &listOf, int index, const Contact &information) {
for(list<int>::iterator it = listOf.begin(); it != listOf.end(); it++){
}
}
for 루프가 바로 writen 경우 나도 몰라,하지만 난이 목록을 통해 갈 것을 상상하고 인덱스를 발견하면 어떤 그것은 juse를 덮어 쓰기로 바꾸려고합니다.
기능 삽입에는 동일한 매개 변수가 있다고 생각합니다.
그리고이 방법을 상상해 보았습니다.하지만 삭제 방법은 확실하지 않습니다.
Contact delete(list<Contact> &listOf, int index) {
}
나는 프로그램의 시작 부분에 이름과 성 모두와 함께 연락처의 strutcture를 만들었습니다.
목록을 사용하여 적절한 조작 방법을 보여 주실 수 있습니까? 당신이 전체 코드를 어떻게 대체 할 수 있는지 알려 주시면 기쁘게 생각합니다. 그것이 가능하다면? 나는 진짜로 그 기능을하는 방법을 알고 싶다. 감사합니다 – user3127680
[std :: list reference] (http://en.cppreference.com/w/cpp/container/list)를보십시오. 리스트는 다른 컨테이너와 비교할 때 특히 좋습니다. 삽입, 지우기, 병합 또는 스플 라이스를 사용하여 목록 내의 요소를 가리키는 반복자가 있다고 가정합니다. 인덱스 만 가지고 있다면, 위와 같이 iterator를 얻기 위해'std :: advance'를 사용할 수 있고,리스트의 메소드 중 하나를 적용 할 수 있습니다. 그러나 이것은 매우 비효율적이라는 것을 명심하십시오. 대개이 경우 벡터를 사용하는 것이 더 좋을 것입니다. 해당 방법이 목록만큼 효율적이지 않더라도 마찬가지입니다. – iavr