출력 매개 변수로 컨테이너를 허용하는 메소드가있을 때, 그 책임은리스트를 지우는 것입니다. 이 경우출력 매개 변수로 컨테이너 유형을 받아들이는 메소드에 대한 프로토콜/규약
bool GetResults(int nID, list<string>& results)
{
.....
}
, 예를 들어 (모든 경우), 메소드 GetResults 목록을 취소해야합니까? 또는 발신자가 자신이하는 일을 알고 있다고 가정해야합니까? GetResults 출력 목록을 지 웁니다 경우, 그것은 당신이 무엇을 선호 달려 있다는 대답은 정말,
list<string> results.
GetResults(1,results)
GetResults(17,results)
일반적으로 'std :: list'는 거의 사용하지 않는 것이 좋습니다. 흥미로운 대안은 bool과 vector의 튜플을 반환하고 호출자가 tie를 사용하도록 기대하는 것입니다. 또 다른 접근법은 호출자가 요청할 때 출력 반복자를 채우는 것입니다. – Yakk