2013-11-15 4 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 [i] .Tags.push_back (nt);' – juanchopanza

ответ

2

Выражение Tags.push_back[nt] не является вызовом метода push_back. Компилятор считает, что вы хотите позвонить push_back.operator[]. Заменить квадратные скобки круглыми скобками:

... Tags.push_back(nt); 
Смежные вопросы