我在Qt示例中看到了一个包含一些<<运算符的C++代码段.我知道有点转移,但显然这些做了别的事情:
在此链接中:http://qt-project.org/doc/qt-4.8/itemviews-simpletreemodel-treemodel-cpp.html有一些代码如下所示:
void TreeModel::setupModelData(const QStringList &lines, TreeItem *parent)
{
QList<TreeItem*> parents;
QList<int> indentations;
parents << parent;
indentations << 0;
// ...
Run Code Online (Sandbox Code Playgroud)
运算符在最后两行中做了什么:parent << parent和indentations << 0
我用Google搜索,但继续登陆谈论转移运营商的网页.
这是否与特定的作业形式有关?
Jos*_*eld 14
找到答案的最简单方法是查看运算符的应用类型.左操作数是a QList<TreeItem*>,右操作数是a TreeItem*.这应该为您提供查找文档QList的提示.
在文档中,您将找到以下规范operator<<:
Run Code Online (Sandbox Code Playgroud)QList<T> & QList::operator<< ( const T & value )这是一个过载功能.
将值附加到列表中.
所以,这里T是你的元素的类型QList,也就是TreeItem*,此重载的operator<<需要参照T并将其添加到列表中.
这应该与用于插入输出流的比喻一致,例如std::cout << "Hello!";.也就是说,它通常被认为是插入操作符.另一方面,operator>>经常用于提取.然而,它真的只是在这里用于语法糖.