C++
C#

Торке

У математици се често помињу уређени парови и уређене n-торке.

Ако желимо да објединимо неколико података истог типа, тада уместо дефинисања новог структурног типа можемо употребити библиотечки тип торки.

У језику C++ n-торке се могу представити типом tuple дефинисаним у заглављу <tuple>. На пример, тип tuple<int, int, int> представља тројку целих бројева. Tорке се могу иницијализовати помоћу витичастих заграда или креирати функцијом make_tuple. На пример, датум можемо представити торком тако да прво ставимо годину, па затим месец и на крају дан.

tuple<int, int, int> datum1 {2000, 1, 1};
tuple<int, int, int> datum2 = make_tuple(1999, 12, 31);

Поља торке се једноставно могу очитати функцијама get<i> где је са i означен редни број компоненте торке који желимо да прочитамо. На пример, get<0>(datum1) враћа вредност 2000, а get<2>(datum1) вредност 1. Постоји и начин да се комплетна торка распакује на појединачне вредности, на пример позив: tie(godina,mesec,dan) = datum1 би у променљиве godina, mesec и dan сместио вредности одговарајућих поља торке datum1.

Основна предност торки у односу на структуре је то што се могу једноставно лексикографски поредити коришћењем уобичајених релацијских оператора <, <=, > и >=.

Торке

У математици се често помињу уређени парови и уређене n-торке.

Ако желимо да објединимо неколико података истог типа, тада уместо дефинисања новог структурног типа можемо употребити библиотечки тип торки.

У језику C# n-торке се могу преставити типом Tuple. На пример, тип Tuple<int, int, int> представља тројку целих бројева. Торке се могу креирати помоћу функције Tuple.Create. На пример, датум можемо представити торком тако да прво ставимо годину, па затим месец и на крају дан.

Tuple<int, int, int> datum = Tuple.Create(2000, 1, 1);

Поља торке се једноставно могу очитати (нпр. datum.Item1, datum.Item2 и datum.Item3), али се не могу мењати.

Основна предност торки у односу на структуре је то што се могу једноставно лексикографски поредити. Торке се могу поредити методом CompareTo која враћа негативан резултат ако је торка на којој је та метода позвана испред торке наведене као аргумент, нулу ако су једнаке и позитиван резултат ако је прва торка иза друге. Пре позива CompareTo потребно је извршити експлицитну конверзију у IComparable. На пример,

if (((IComparable)datum1).CompareTo(datum2) < 0)
   // znamo da je datum1 ispred datum2