@igoodmood

Как объединить три одномерных массива в один?

Как объединить три одномерных массива в один?
  • Вопрос задан
  • 1022 просмотра
Пригласить эксперта
Ответы на вопрос 5
vt4a2h
@vt4a2h Куратор тега C++
Senior software engineer (C++/Qt/boost)
Создайте массив с достаточным количеством элементов и скопируйте туда три массива, которые надо объединить :)
PS Советую использовать std::vector.
Ответ написан
Комментировать
@Free_ze
Пишу комментарии в комментарии, а не в ответы
std::vector<int> dest = {1,2,3};
std::vector<int> src = {4,5,6};
std::vector<int> src2 = {6,7,8};

dest.insert( dest.end(), src.begin(), src.end() );
dest.insert( dest.end(), src2.begin(), src2.end() );
Ответ написан
@Mercury13
Программист на «си с крестами» и не только
Я бы свалил их один за другим в один массив или вектор
www.cplusplus.com/reference/algorithm/copy

а затем дважды вызвал бы функцию
www.cplusplus.com/reference/algorithm/inplace_merge

Если массивы длины 10, 15 и 20, то…
• Первый раз — std::inplace_merge(v.begin(), v.begin() + 10, v.begin() + 10 + 15);
• Второй раз — std::inplace_merge(v.begin(), v.begin() + 10 + 15, v.begin() + 10 + 15 + 20);
Ответ написан
Комментировать
AtomKrieg
@AtomKrieg
Давай я поищу в Google за тебя
Daniro_San
@Daniro_San
Программист
STL вам поможет
const std::vector<int> 
first{ 1, 2, 3 }, second{ 4, 5, 6 }, third{ 7, 8, 9 };

std::vector<int> result=first;
std::copy(second.cbegin(), second.cend(), std::back_inserter(result));
std::copy(third.cbegin(), third.cend(), std::back_inserter(result));
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы