Различия между вектором, множеством и кортежем - PullRequest
29 голосов
/ 10 июня 2009

Каковы различия между векторами, наборами и кортежами в программировании?

Ответы [ 6 ]

70 голосов
/ 10 июня 2009
  • Вектор: Упорядоченный набор объектов одного типа.
  • Set: неупорядоченная коллекция объектов, возможно, одного типа или, возможно, различных в зависимости от типа коллекции и языка. Любой данный объект может появиться только один раз.
  • Tuple: упорядоченный набор объектов разных типов.
20 голосов
/ 10 июня 2009

A vector - это упорядоченная последовательность элементов, которая допускает дублирование.

A set - это набор элементов, который неупорядочен и не допускает дублирование.

A tuple - упорядоченная последовательность предметов заданной длины.

5 голосов
/ 10 июня 2009

Кортеж - это гетерогенный набор объектов, который должен рассматриваться как единое целое: например, ("Джон", "Смит", 30) - это кортеж (String, String, Integer).

Список (в C ++: а также vector) представляет собой однородную коллекцию объектов, то есть каждый объект может обрабатываться одинаково. То, являются ли они на самом деле одним и тем же типом, зависит от языка, но дело в том, что они могут обрабатываться одинаково.

Набор представляет собой неупорядоченную уникальную однородную коллекцию - вы знаете, какие объекты он содержит, и какого типа они есть, но не в каком порядке, и он содержит только один из каждого объекта.

3 голосов
/ 17 октября 2016

Математически

У кортежа есть свойства, которые отличают его от набора.

  • Кортеж может содержать несколько экземпляров одного и того же элемента, поэтому кортеж (1,2,2,3)! = (1,2,3), но набор {1,2,2,3} = {1,2 , 3}.
  • Элементы кортежа упорядочены: tuple (1,2,3)! = (3,2,1), но установлено {1,2,3} = {3,2,1}.
  • Кортеж имеет конечное число элементов, а набор или мультимножество могут иметь бесконечное количество элементов.

Вектор - это другой тип, представленный несколькими кортежами.

Приветствия: -)

2 голосов
/ 10 июля 2012

Векторы имеют порядок

Кортежи упорядочены и могут иметь повторяющиеся элементы.

Наборы неупорядочены, и повторяющиеся элементы не меняют набор.

Например: {a, b}, {b, a} и {b, b, a} являются одним и тем же набором, тогда как (a, b), (b, a) и (b, b, а) все разные кортежи.

0 голосов
/ 10 июня 2009

Векторы имеют порядок, наборы не имеют (и не могут иметь дубликаты), а кортежи близки к векторам, но на практике обычно используются больше как структуры.

...