কম্পিউটার টিউটোরিয়াল

C++ STL-এ কাস্টম অবজেক্টের ভেক্টর সোর্ট করা (Sorting Vector of Custom Objects)

std::sort ব্যবহার করে কাস্টম অবজেক্টের ভেক্টর সোর্ট করা যায়। ওভারলোডেড ভার্সন কম্পারেটর (comparator) নেয়।

উদাহরণ (C++11 Lambda)

#include <iostream>
#include <algorithm>
#include <vector>
#include <string>
using namespace std;

struct MyStruct {
    int key;
    string data;
    MyStruct(int k, string d) : key(k), data(d) {}
};

int main() {
    vector<MyStruct> vec;
    vec.emplace_back(4, "test");
    vec.emplace_back(2, "is");
    vec.emplace_back(3, "a");
    vec.emplace_back(1, "this");

    sort(vec.begin(), vec.end(), [](const MyStruct& lhs, const MyStruct& rhs) {
        return lhs.key < rhs.key;
    });

    for(auto &it : vec)
        cout << it.data << endl;
}

আউটপুট

this
is
a
test

পুরানো C++ (ফাংশন পয়েন্টার)

bool comparator(const MyStruct& lhs, const MyStruct& rhs) {
    return lhs.key < rhs.key;
}
sort(vec.begin(), vec.end(), comparator);

অপারেটর ওভারলোডিং (operator<)

স্ট্রাক্টে bool operator<(const MyStruct& other) const ওভারলোড করলে sort(vec.begin(), vec.end()) সরাসরি কাজ করবে।

  1. C++-এ ভেক্টর ডিসেন্ডিং অর্ডারে সর্ট করা (Sorting a vector in descending order in C++)

  2. C++-এ ভেক্টর সর্ট করা (Sorting a vector in C++)

  3. C++ STL-এ Vector বাস্তবায়ন: ডাইনামিক অ্যারে ব্যবহার

  4. C++ STL-এ accumulate দিয়ে অ্যারে প্রোডাক্ট বের করা