使用void QList::push_back ( const T & value )
append()
做同样的事情文档的含义是什么样的兼容性。任何人都可以详细说明这个
以下是QT官方documentation的声明
“ 此功能是为STL兼容性而提供的。它相当于追加(值) ”
答案 0 :(得分:7)
这通常用于使期望标准容器作为模板参数的方法模板也可以与QList
一起使用,因为它们将共享相同的方法。
例如:
template<typename Container>
void move_elements(Container &to, const std::vector<int> &from)
{
for (auto elem : from)
to.push_back(elem);
}
可以使用std::list<int>
和QList<int>
作为to
参数进行调用。
答案 1 :(得分:4)
它是为了兼容性,所以你可以发送QList
的算法强>
在标准容器上操作。我认为这是主要的好处,因此您可以使用<algorithm>
中的所有操作。我举一个来自find_if
的{{1}}的例子:
<algorithm>
我的childItems_声明为:
bool hasChildChecked(){
return std::find_if(childItems_.begin(),
childItems_.end(),checked()) != childItems_.end();
}
这种兼容性确实可以节省我的时间并使编码更容易。
答案 2 :(得分:1)
你可能遇到这种情况:
template <
template <
typename ValueType,
typename Allocator
> class Container
> class garbage_collector
{
/* some implementation */
};
因为QList与STL容器具有相同的方法名称,所以可以在此上下文中使用它。
答案 3 :(得分:0)
C ++的STL(标准模板库)对列表和向量使用函数push_back(),因此对于大多数C ++程序员来说,这是一种熟悉的方法。因此,他们在调用方法时为模板参数兼容性提供了额外的方法。