c ++ list,push_back,&模板?

时间:2017-06-23 22:26:31

标签: c++ templates object push-back

我在模板对象上使用push_back非常困难。任何人都可以解释为什么这有效

sizeof

但这不会。

    list<int> mylist;
    int myInt;
    mylist.push_back(myInt);

2 个答案:

答案 0 :(得分:2)

列表是一些模板化对象的列表。使用以下命令实例化int对象列表:

list<int> mylist;

此列表现在“知道”它将管理int对象。

其中一个列表方法是push_back(),它将模板化对象类型的对象添加到列表的末尾。

使用以下命令实例化KeyValuePair对象列表:

list<KeyValuePair<T>> mylist;

第二个列表用于管理KeyValuePair对象

现在,如果您尝试将int对象添加到KeyValuePair对象列表中,则会失败,因为此列表是KeyValuePair对象的列表,而不是int对象。

答案 1 :(得分:0)

声明第二个列表存储KeyValuePair<T>类型的对象。这就是为什么它不允许你的int类型的push_back()。