// Example to illustrate stable iteration using std::vector in C++
#include <iostream>
#include <vector>
#include <algorithm>
struct Data {
int id;
std::string name;
};
bool compareById(const Data &a, const Data &b) {
return a.id < b.id;
}
int main() {
std::vector dataset = {
{2, "Alice"},
{1, "Bob"},
{3, "Charlie"},
{2, "David"}
};
// Sort the vector by 'id' maintaining the order of insertion for equal elements
std::stable_sort(dataset.begin(), dataset.end(), compareById);
// Output the sorted dataset
for (const auto &data : dataset) {
std::cout << "ID: " << data.id << ", Name: " << data.name << std::endl;
}
return 0;
}
How do I avoid rehashing overhead with std::set in multithreaded code?
How do I find elements with custom comparators with std::set for embedded targets?
How do I erase elements while iterating with std::set for embedded targets?
How do I provide stable iteration order with std::unordered_map for large datasets?
How do I reserve capacity ahead of time with std::unordered_map for large datasets?
How do I erase elements while iterating with std::unordered_map in multithreaded code?
How do I provide stable iteration order with std::map for embedded targets?
How do I provide stable iteration order with std::map in multithreaded code?
How do I avoid rehashing overhead with std::map in performance-sensitive code?
How do I merge two containers efficiently with std::map for embedded targets?