В основном я хотел бы сделать что-то подобное:Передача массивов фиксированного размера в C++?
int[3] array_func()
{
return {1,1,1};
}
int main(int argc,char * argv[])
{
int[3] point=array_func();
}
Но это не кажется законным в C++. Я знаю, что могу использовать векторы, но поскольку я знаю, что размер массива является константой, похоже, что потеря производительности может произойти. Я также хотел бы избежать new
, если могу, потому что распределение материала в стеке проще и, вероятно, также улучшит производительность.
Какое решение здесь?
Это был бы лучший ответ, за исключением того, что такая структура уже существует: http://stackoverflow.com/questions/1755000/1755017#1755017 – sbi
Я выбрал это как лучший ответ, потому что он отвечает на мой вопрос простым и простым, не проталкивая библиотеку, которую я не просил. Не то, чтобы ответ на лампочку был плохим, я просто нашел ответ разговора немного яснее. –
«... нажав библиотеку, я не просил ...» Ну, мы говорим здесь _boost_, а не только какую-то библиотеку. Во всяком случае, есть очень хорошая вероятность, что ваша стандартная реализация lib поставляется с 'std :: tr1 :: array' (C++ 03 или TR1) или даже' std :: array' (C++ 1x), что является точно таким же , (Который показывает, что повышение - это не просто еще одна библиотека. Это тестовый стенд для следующего стандарта C++, основанного членами комитета std именно по этой причине, имеет самые высокие стандарты качества и требовательные обзоры, и это способствует большому количеству материала к следующей стандартной библиотеке.) – sbi