2014-03-12 1 views
0

질문 ... 벡터에푸시 백 정적 벡터 내부 정적 벡터 및 푸시 백 약

생각되는 문자열과 다른 벡터와 쌍을 저장 한 벡터 ...

[0] foo1은 : BAR1, CPP를 파일에서

class thing 
{ 
public: 
... 
static std::vector<std::pair<std::string, std::vector<std::string>>> things; 
... 
} 

:

I는 H 파일이 벡터를 선언

왈져, bar4 ... : 바 2 ... [1]에서는 foo2 내가 함께 내부 쌍 벡터를 업데이트하려고하면,

typedef pair<string,vector<string>> p; 
p P; 
P.first = foo; 
P.second.push_back(bar1); 

을 :하지만

vector<pair<string,vector<string>>> thing::things; 

나는 간단한와 벡터의 첫 번째 항목을 만들 수 있습니다

typedef pair<string,vector<string>> p; 

BOOST_FOREACH(p P, thing::things) 
{ 
    if(P.first==foo) 
    { 
     P.second.push_back(bar2); 
    } 
} 

것은 :: 벡터 두 번째 값으로 업데이트되지 않습니다 ...

어떤 도움이 필요합니까?

감사합니다. 당신이 그것을 사용처럼, 각 요소의 복사본을 생성

BOOST_FOREACH(p & P, thing::things) 
{ 
    if(P.first==foo) 
    { 
     P.second.push_back(bar2); 
    } 
} 

: 당신이 요소를 수정하려면

+0

표준 루프를 사용하는 경우에도 마찬가지입니까? – juanchopanza

+0

안녕, 이상한, 표준 루프 잘 작동 ...하지만 난 아직도 왜 ... 후고야 후안 ... –

답변

1

는, 당신은 참조가 필요합니다.

+0

이걸로 1 시간을 잃었을 믿을 수 있을까요? 커피가 아직 부족합니다 ... 고맙습니다! –

관련 문제