Reputation: 3431
How can I remove 5 first elements of a QMap
?
Upvotes: 0
Views: 3111
Reputation: 90442
Something like this would probably work:
const size_t count = std::min<size_t>(5, m.size());
for(int i = 0; i < count; ++i) {
m.erase(m.begin());
}
DEMO:
#include <iostream>
#include <map>
#include <algorithm>
int main() {
std::map<int,int> m;
m.insert(std::make_pair(0,0));
m.insert(std::make_pair(1,1));
m.insert(std::make_pair(2,2));
m.insert(std::make_pair(3,3));
m.insert(std::make_pair(4,4));
m.insert(std::make_pair(5,5));
m.insert(std::make_pair(6,6));
const size_t count = std::min<size_t>(5, m.size());
for(size_t i = 0; i < count; ++i) {
m.erase(m.begin());
}
for(std::map<int,int>::const_iterator it = m.begin(); it != m.end(); ++it) {
std::cout << it->second << std::endl;
}
}
DEMO using QMap
#include <iostream>
#include <QMap>
int main() {
QMap<int,int> m;
m[0] = 0;
m[1] = 1;
m[2] = 2;
m[3] = 3;
m[4] = 4;
m[5] = 5;
m[6] = 6;
const size_t count = qMin<size_t>(5, m.size());
for(size_t i = 0; i < count; ++i) {
m.erase(m.begin());
}
for(QMap<int,int>::const_iterator it = m.begin(); it != m.end(); ++it) {
std::cout << it.value() << std::endl;
}
}
Upvotes: 3
Reputation: 8895
There is no such thing as 'First' and 'Last' in Maps.
its QMap<Key, T>
while elements are accessed by the Key part, which is usually non-numeric.
Upvotes: 0