Композиция на c ++ с необработанным или интеллектуальным указателем?

Небольшой пример того, что я хочу сделать.

У меня есть список (выделенных стеком) вершин

class Vertex {

    int id;
    double x;
    double y;
    double z;
};

, и я хочу создать список ребер

class Edge {

    int id;
    Vertex * source;
    Vertex * target;
};

с двумя указателями на исходную и целевую вершины.

Обычно я ищу здесь ссылку, но я хочу иметь возможность изменять исходную или целевую вершину во время выполнения, поэтому мне нужен какой-то тип указателя.

Итак, мой вопрос: есть ли умный указатель, который был бы здесь полезен, или я должен просто использовать обычный указатель, как указано выше?

Изменить

Обращение к некоторым пунктам, которые возникли в ответах:

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

Во-вторых, идентификаторы предназначены для другой программы.

Ему нужен файл со списком всех вершин и их координатами, а также списком всех ребер и идентификаторами двух его вершин.

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

(среди прочего выполняется некоторая нарезка и нарезка)

7
задан Kos 11 December 2010 в 18:40
поделиться