The STL overs a variety of functions to find elements in container classes. Are there similar functions in for Qt 5.5 container classes e.g. QList
or QVector
?
Especially, I'm looking for an equivalent one-liner i.e. std::find_if
using Qt containers and Qt algorithms:
int main(int arg, char** args) {
std::vector<int> c = { 2,3,4,6,6,15 };
if (std::find_if(c.begin(), c.end(), [](const int& value) { return value % 5 == 0; }) != c.end()) {
std::cout << "At least one element divisible by 5." << std::endl;
} else {
std::cout << "No element is divisible by 5." << std::endl;
}
return 0;
}
The predicate of an element being divisible by 5 should be just serve as an example.
Does the Qt Framework provides such nice algorithms?
STL algorithms defined in algorithm
header can be used with Qt containers. If Qt lacks an equivalent algorithm there is no reason to avoid using the STL algorithm. If Qt is built with STL support it should work by default.
#include <algorithm> // std::find_if
#include <QApplication>
#include <QVector>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QVector<int> c{ 2,3,4,6,6,15 };
if (std::find_if(c.begin(), c.end(), [](const int& value) { return value % 5 == 0; }) != c.end()) {
...
}
return app.exec();
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With