1
A
回答
-1
也許QList或QVector可以提供幫助。
QList<QString> stringList;
//By the way, Qt provides QStringList as a typedef for QList<QString>
stringList.append("A");
stringList.append("B");
qDebug() << stringList.at(0); //A
qDebug() << stringList.at(1); //B
0
我不知道Qt和STL都沒有那種開箱即用的功能。 Boost有這樣的想法,但你自己做這件事並不難。
你可以做一個包裝圍繞QHash
這樣的:
template<typename T>
class MySet : QHash<T, int>
{
public:
using QHash<T, int>::QHash;
QVector<T> values() //this 'hides' the base QHash::values() of QHash
{
QVector<T> vec(count());
for(auto it = cbegin(); it != end(); ++it)
{
vec[it.value()] = it.key();
}
return vec;
}
void insert(const T &value)
{
if(!contains(value))
{
insert(value, m_Data.count());
}
}
};
用法頗爲相似QSet
:
MySet<QString> set;
set.insert("1");
set.insert("2");
set.insert("3");
qDebug() << set.values();
而且爲了使打印出數值。如果你需要更多的支持,像迭代器也按照你想要的順序迭代,你將不得不重新實現更多的功能,但其要點將是相同的。畢竟QSet
在內部也是QHash
。請注意,上述內容不支持未經修改的移除。
相關問題
- 1. 具有重複值的Java比較器排序順序
- 2. 爲什麼順序容器同時具有size_type和difference_type?
- 3. 按順序重新排列具有重複值的數組
- 4. 具有指定順序的數組綁定元素
- 5. 有沒有Qt特定的分析器?
- 6. [Qt]:'CButton'沒有指定類型
- 7. 矢量化環具有重複指數
- 8. Qt - 具有複選框列的QTreeView和自定義模型
- 9. 在php中沒有重複的順序組合?
- 10. 對於隨機順序沒有重複的號碼
- 11. 將具有/ en /的所有內容重定向到指定頁面
- 12. 沒有重複
- 13. 沒有重複
- 14. 有沒有辦法在Qt中檢查重複的連接?
- 15. 具有Angular2應用程序和NodeJs的Docker容器沒有響應
- 16. RegEx for placeholder(mmddyyyy)沒有特定順序
- 17. MySQL的刪除行具有重複和相似的內容
- 18. gt:錯誤:既沒有指定工具也沒有腳本;
- 19. 具有重複值的快速排序
- 20. EJB定時器服務:具有相同ScheduleExpression的超時順序
- 21. 具有重複狀態的計數器
- 22. 有沒有辦法在SQL中手動指定結果的順序?
- 23. 有沒有方法可以指定結構中可用命令的順序?
- 24. SQL順序和左外部連接沒有正確的順序
- 25. Google Mock:按指定順序執行重複動作
- 26. 指針具有和不具有參考
- 27. 沒有重複值
- 28. 沒有重複值
- 29. WPF,沒有重複
- 30. XSD:沒有重複
沒有足夠信息迴應:什麼類型的項目你使用,你怎麼想插入並訪問他們...它可以是任何的下一個容器:[QMAP(HTTP://doc.qt。 io/qt-5/qmap.html),[QHash](http://doc.qt.io/qt-5/qhash.html#qhash),[QVector](http://doc.qt.io/ qt-5/qvector.html),[QList](http://doc.qt.io/qt-5/qlist.html)等...請參閱[Qt容器類](http://doc.qt .io/qt-5/containers.html) –
@VladimirBershov - 您提到的容器要麼重複,要麼不通過插入它們的順序保存項目。 – kakush
爲什麼不簡單[QVector :: append()](http://doc.qt.io/qt-5/qvector.html#append)或[insert()](http://doc.qt.io/ QT-5/qvector.html#插入)? –