2013-11-15 18 views
0

我試圖一個結構添加到結構體的載體。C++的push_back編譯器錯誤「

vector<udtWChar2> n; 
    vector<udtTag>_tags; 

for (unsigned t=0;t<_tags.size();t++) 
{ 
    udtTag &nt=_tags[t]; 
    for (int i=nt.PosStartTag;i<nt.PosStartTag+nt.CoveredLen;i++) 
    { 
     n[i].Tags.push_back[nt]; 
    } 
} 

我正的誤差是在該行

n[i].Tags.push_back[nt]; 

」的指針,一個綁定功能可能只能被稱爲調用該函數」

這裏是我的聲明:

struct udtTag 
{ 
    int PosStartTag; 
    int LenStartStart; 
    int PosEndTag; 
    int LenEndTag; 
    int CoveredLen; 
    eTagType Type; 
    wstring Value; 
}; 

struct udtWChar2 
{ 
    wstring Text; 
    int OrigPos; 
    int AbsSpeed; 
    int Bookmark; 
    bool IsTag; 
    vector<udtTag>Tags; 
}; 

我不明白我做錯了什麼。有人可以幫忙嗎? 謝謝。

+3

您需要括號:'N [1] .Tags.push_back(NT);' – juanchopanza

回答

2

表達式Tags.push_back[nt]不是調用方法push_back。編譯器認爲你想調用push_back.operator[]。用括號替換方括號:

... Tags.push_back(nt);