Наследование вместо определения типа

Если вы пытаетесь получить доступ к фрейму данных, то использовать вектор будет проще, чем использовать список. Например,

columns_to_access <- c("year", "drv")
mpg[columns_to_access] 

Но вы также смешиваете имена столбцов и индексы столбцов, поэтому

mpg[c("year", "drv")]

будут работать, как и

mpg[1:2]

, но не как смесь.

Редактировать: можно использовать смесь, если вы используете пакет "dplyr", как показано в , этот ответ

11
задан Daniel A. White 14 January 2009 в 02:45
поделиться

3 ответа

C++ 0x добавит шаблонные определения типов с помощью using ключевое слово.

Ваше решение объявляет новый тип, не тип "псевдоним", например, Вы не можете инициализировать a MyVectorType & (ссылка) с a vector<T>. Это не могло бы быть проблемой для Вас, но если это, но Вы не хотите ссылаться на вектор в своем коде, можно сделать:

template <typename T>
class MyVectorType {
public:
  typedef std::vector<T> type;
};
13
ответ дан 3 December 2019 в 04:34
поделиться

Наследование не то, что Вы хотите. Более идиоматический подход к эмуляции шаблонного определения типа является этим:

template <typename T> struct MyVectorType {
    typedef std::vector<T> t;
};

Обратитесь к определению типа как это:

MyVectorType<T>::t;
10
ответ дан 3 December 2019 в 04:34
поделиться

C++ не может сделать шаблон из определения типа или определения типа шаблонным классом.

Это зависит от того, под чем Вы подразумеваете typedef: std::vector<size_t> законно - даже при том, что size_t определение типа - и std::string a typedef для std::basic_string<char>.

1
ответ дан 3 December 2019 в 04:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: