sorted

OPL keyword for ascending sort order

Purpose

OPL keyword to specify the ascending order for sets.

context
Model files (.mod)

Syntax

SetTypeModifier: "ordered"
               | "sorted"
               | "reversed"

Description

Specify the sorted keyword before a set to indicate that its number or string elements appear in ascending natural, lexicographic order. To specify the descending order, use the keyword reversed.

In sets of tuples, all the keys are used as sort criteria.

By default, if you do not specify the sorted or reversed keyword, the set is ordered, that is, its elements are considered in their order of creation.

See Sorted and ordered sets for more information on the different types of sets in OPL.

Note:

Do not confuse the implicit ordered property of sets with ordered index pairs. See the keyword “ordered”.

Example

tuple Precedence { int a; string b; };
ordered {int} setInt = { 1,7,2};
ordered {Precedence} precedences = { <2,"two">,<1,"One">}; 
sorted {int} setInt2 = { 1,7,2};
sorted {Precedence} precedences2 = { <2,"two">,<1,"One">}; 
reversed {int} setInt3;
execute
{
setInt3.add(1);
setInt3.add(7);
setInt3.add(2); 
}
reversed {Precedence} precedences3; 
execute
{
precedences3.add(2,"two");
precedences3.add(1,"one"); 
}
execute
{
writeln(setInt);
writeln(precedences); 
writeln(setInt2);
writeln(precedences2); 
writeln(setInt3);
writeln(precedences3); 
}

Result

 {1 7 2}
 {<2 "two"> <1 "One">}
 {1 2 7}
 {<1 "One"> <2 "two">}
 {7 2 1}
 {<2 "two"> <1 "One">}