2011-04-23 20 views
1

그래서 우리는 3 개의지도를 가지고 있습니다. args, 헤더 및 params 맵. 문자열 - 문자열 맵입니다.
우리는 또한이 곳에 set<settings> Settings_Set :이 문제를 해결하는 반복기를 만드는 방법은 무엇입니까?

struct settings 
{ 
    string name; 
    set<string> args; 
    set<string> headers; 
    set<string> params; 
}; 

우리는 Settings_Set의 모든 항목에서 모든 세트 우리 maps-의 모든> 첫 번째 문자열을 비교하고 싶습니다. Settings_Set 우리 sttings 더 이상 우리의지도에서 발견 된 경우와 비교하면서 후 또는 우리는

  • 을 알고 싶어
  • 하나의 설정은 우리의지도에서 발견 (출력 이름)
  • 만약 있다면 우리 설정 중 아무 것도지도에서 발견되지 않았습니다

그런 것을 만드는 방법은 무엇입니까?

+1

당신은 더 정확하게 될 수 있습니까? 나는 정말로 그 질문을 이해하지 못하고'지도'가 단지''설정'을 보지 못한다. – pmr

+0

누구 ** ** 우리 **? 이것은 내 program-for-free 서비스를 작성하는 것이 아닙니다. –

+2

매우 특정한 문제를 해결할 수있는 마술 사전 알고리즘은 없습니다. 세트의 각 설정을 반복하고지도에서 검색하고 변수에 결과를 할당해야합니다. 프로그램을 직접 작성한 후에 문제가 발생하면 도움을 드리겠습니다. –

답변

3

부스트가 전혀 필요하지 않습니다. 또한 "지도"라고해도 std::map의 인스턴스가 표시되지 않습니다. 나는 세트 만 본다.

이것은 해결책이 아닙니다. 그 자체입니다.이지만 더 알아 내기위한 힌트입니다. 당신은 할 수와 set<settings> Settings_Set의 요소를 루프 :

set<settings>::iterator ite = Settings_Set.begin(); 

while(ite != Settings_Set.end()) 
{ 
// do what you need to do in here 
// with the corresponding ite->name, ite->args, ite->headers, and ite->params 

// Also, you can see if something is in a set by using: 
// set<string>::iterator ites = ite->params.find(std::string("some string")); 
// which will put the appropriate iterator into ites if one is found 
// or ite->params.end() if one is not found 

++ite; 
} 

당신이에서와 std::set에 표준 참조 중 하나에서 그것을 함께 조각 할 수 있어야합니다 STL set reference

(나는 const_iterator을 사용하지 않은 참고 고의적으로, 나는 당신이 당신의 게시물에서 말했듯이, 당신이 가치를 바꾸고 있다고 가정하기 때문에.)

+0

질문이 너무 모호한 한 이것이 추측 일 뿐이라고 생각합니다. – pmr

관련 문제