Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.10.2020, 11:33   #1
Александр222
Пользователь
 
Регистрация: 15.04.2020
Сообщений: 59
Вопрос C++. Добавление элементов в контейнер

8.jpg

Никак не могу понять про добавление суммы и среднего арифметического.
В Add я использую push_back (добавление в конец контейнера)
Но в файле это никак не отображается. Или я что-то не так понял?

Код:
#include<iostream>
#include<fstream>
#include<string>
#include<sstream>
#include<ctime>
#include<vector>
#include<deque>
#include<list>
#include<algorithm>
#include<cstdlib>
#include <iterator>
#include <cmath>

using namespace std;

int firstnechot;

FILE *File(int N, int count){

     srand(time(NULL));

FILE* file;
     fopen_s(&file, "input.txt", "w+");
     fstream in(file);

    for (int i = 1; i <= count; i++){
        in << rand() % (2 * N + 1) - N << endl;
    }

    cout << "Файл создан!" << endl;

    return file;
}

vector<int> inputfile_to_vector(FILE *File){
    ifstream in(File);

    in.seekg(0);
    int x;
    vector<int> vector;
    in >> x;

     while (!in.eof()) {
           vector.push_back(x);
           in >> x;
     }

     return vector;
}

deque<int> inputfile_to_deque(FILE *File){
     ifstream in(File);

     in.seekg(0);
     int x;
     deque<int> deque;
     in >> x;

     while (!in.eof()){
           deque.push_back(x);
           in >> x;
     }

     return deque;
}

list<int> inputfile_to_list(FILE *File){
     ifstream in(File);

     in.seekg(0);
     int x;
     list<int> list;
     in >> x;

    while (!in.eof()){
          list.push_back(x);
          in >> x;
    }

    return list;
}

template <class T>
T& modify(T& x){

    int firstnechot = 0;

    for (const auto& i : x){
        if (std::abs(i) % 2 == 1){
            firstnechot = std::abs(i);
            break;
        }
    }
    for (auto& i : x) { i += firstnechot; }
   
    return x;
}

template <class T>
    inline void Add(T& conteiner){
    typename T::const_iterator pos;
    int S = 0, SA = 0, N = 0;

    for (pos = conteiner.begin(); pos != conteiner.end(); ++pos) {
        S += *pos;
        SA += abs(*pos);
        N++;
    }

    conteiner.push_back(S);
    conteiner.push_back(SA / N);
    cout << "В контейнер добавлена сумма и среднее арифметическое!" << endl;
}

    int Random(){ return rand() % (2 * 50 + 1) - 50; }  


int main(){

setlocale(0, "");

    FILE *F = File(50, 3);

    cout << endl << "Создание контейнеров..." << endl;
    vector<int> V = inputfile_to_vector(F);
    deque<int> D = inputfile_to_deque(F);
    list<int> L = inputfile_to_list(F);

    cout << "Изменение контейнера" << endl;
    modify(V);
    Add(D);

    system("pause");
}
Александр222 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавление элементов в ListView coNsept Общие вопросы .NET 1 05.03.2012 19:51
Ошибка при добавление элементов в контейнер pronaks Общие вопросы C/C++ 4 14.12.2011 21:54
Запись элементов перечисления в контейнер List malinoff Помощь студентам 3 28.02.2011 16:58
добавление элементов в массив nhr Помощь студентам 1 11.12.2010 16:45
Добавление элементов ListView SnakeMan Помощь студентам 4 30.11.2007 11:54