Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Функция с массивом


Автор: Bysobi 24.7.2014, 23:42
Добрый вечер. У меня есть задание: 
написать функцию (процедуру) с параметрами для обработки одномерного массива целочисленных данных (количество элементов массива ≤50). Функция (процедура) должна возвращать новый массив, состоящий из отрицательных элементов исходного массива.

Автор: Lukkoye 25.7.2014, 23:17
http://rextester.com/KUOPA33076

Код

#include <iterator>
#include <iostream>
#include <algorithm>
#include <array>
 

//функция, которая вернет массив
std::array<int, 3> foo(const std::array<int, 3>& src);

int main()
{
    //наполняем массив первичными значениями
    std::array<int, 3> a{ {1,2,3} };  

    //показываем содержимое
    std::cout<<"--- before ---\n";
    std::copy(a.begin(), a.end(), std::ostream_iterator<int>(std::cout, " "));

    //отправляем массив в функцию, и получаем оттуда новый     
    const std::array<int, 3> b = foo(a);

    //показываем новый массив
    std::cout<<"\n--- after ---\n";
    std::copy(b.begin(), b.end(), std::ostream_iterator<int>(std::cout, " "));
}

std::array<int, 3> foo(const std::array<int, 3>& s)
{
    //для примера числа в новом массиве будут как в старом но с другим знаком
    
    size_t i=0;
    std::array<int, 3> a;
    
    std::generate (a.begin(), a.end(), [&s,&i] (){ return -s[i++]; } );
    return a;
}


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)