C ++ push_back编译错误“

时间:2013-11-15 14:04:59

标签: c++ visual-studio-2010 vector struct 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];

&#34;只能调用指向绑定函数的指针来调用函数&#34;。

以下是我的声明:

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;
};

我不知道自己做错了什么。有人可以帮忙吗? 谢谢。

1 个答案:

答案 0 :(得分:2)

表达式Tags.push_back[nt]不是方法push_back的调用。编译器认为您要调用push_back.operator[]。用括号替换方括号:

... Tags.push_back(nt);