Очевидная вещь, которая выпадает, это split(&fvec, str);
в вашей функции main
, что означает, что вы передаете не вектор, а адрес вектора.Это правильно, если ваш векторный параметр является указателем, но не является ссылкой.Вместо этого используйте split(fvec, str);
.
Кроме того, одна вещь, которую вы могли бы рассмотреть, это построить вектор в функции и вернуть его как обычно.Это, вероятно, будет оптимизировано компилятором.Если вы не используете компилятор с возможностью оптимизации возвращаемого значения, вы, вероятно, получите лучшие результаты, изменив компиляторы, чем пытаясь настроить свой код вручную.
И, если вы беспокоитесь о передаче больших данныхструктуры вокруг, что из строкового параметра?Разве это не становится большим?