R и C ++ - это разные языки. Нет никаких оснований ожидать, что они поделятся синтаксисом. Вы должны быть более удивлены, когда синтаксис совпадает, чем когда он отличается.
Тем не менее, когда у вас есть пакет, такой как Rcpp, который интегрирует языки, обычно есть некоторая попытка привести синтаксис в соответствие. Так почему бы не использовать тот же оператор, что и R, в этом случае? Потому что это невозможно. Список операторов в C ++ фиксирован, и %*%
в этом списке нет. Тем не менее, оператор *
находится в списке, так что оператор может быть выбран. Всегда лучше выбрать то, что можно выбрать, чем не работать. :)
(В случае, если это упущено: C ++ не имеет встроенной поддержки матричных операций. Матричное умножение «в C ++» отсутствует, только в определенных библиотеках, таких как Armadillo.)