Check out the Contribution Guidelines in case you want to contribute.
assuming that x is a tuple and sorting will depend on x[0], if x[0] is equal then x[1]
data.sort(key = lambda x: (x[0], x[1]))
assuming x is a class where it has two int attributes: id, marks
data.sort(key = lambda x: (x.id, x.marks))
board = [['X' for i in range(M)] for j in range(N)]
arr = []
for i in range(n):
arr.append([])
class comparator
{
public:
// Type is variable type or any user defined object
bool operator() (Type a, Type b)
{
// return according to your need
}
};
std::priority_queue<pair<int, int>, vector<pair<int, int>>, comparator> pq;
#include<iostream>
#include <ext/pb_ds/assoc_container.hpp> // Common file
#include <ext/pb_ds/tree_policy.hpp> // Including tree_order_statistics_node_update
using namespace std;
using namespace __gnu_pbds;
typedef tree<
int,
null_type,
less<int>,
rb_tree_tag,
tree_order_statistics_node_update>
ordered_set;
int main(){
ordered_set s;
s.insert(5);
s.insert(4);
cout << s.order_of_key(6) << endl; // this will output 2 as there are two numbers in the set that are less than 6
}
// this goes inside the class
public int CompareTo(Node other)
{
if (this.c == other.c) return this.value.CompareTo(other.value);
return this.c.CompareTo(other.c);
}