Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 0
Регистрация: 01.04.2018
Сообщений: 7
1

Слияние 2х векторов из 2х файлов

01.04.2018, 13:41. Просмотров 397. Ответов 3

Помогите написать программу Пожалуйста .Программа создает два вектора a и b из двух файлов. Функция
слияния добавляет в вектор a из вектора b те слова, которых нет в
векторе a. Вывести количество добавленных слов, общее количество
слов в a.Если не затруднит то с коментариями.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.04.2018, 13:41
Ответы с готовыми решениями:

Слияние двух векторов
Дано два одномерных массива A и B. Помогите, пожалуйста с кодом: нужно соединить их в один массив...

Слияние двух векторов в третий по условию
Здравствуйте, подскажите пожалуйста как написать сравнение двух массивов (массив старых и массив...

Слияние файлов.
В файле f элементы упорядочены по возрастанию.требуется слить эти файлы в один файл,также...

SVN. Слияние файлов
Я работаю на одной локальной машине. Второй человек - на другой локальной. Ресурс находится на...

3
1732 / 1326 / 1406
Регистрация: 28.10.2016
Сообщений: 4,265
01.04.2018, 14:04 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <iostream>
#include <vector>
#include <iterator>
#include <algorithm>
#include <fstream>
#include <sstream>
#include <string>
 
std::vector<std::string> FileToVector(std::string path) {
    std::ifstream file(path.c_str());
    std::vector<std::string> v;
    std::string s;
    std::getline(file, s);
    std::stringstream ss(s);
    while (ss >> s) v.push_back(s);
    file.close();
    return v;
}
 
int main()
{
    std::vector<std::string> a = FileToVector("a.txt"), b = FileToVector("b.txt");
    std::copy(a.begin(), a.end(), std::ostream_iterator<std::string>(std::cout, " ")); std::cout << "\n";
    std::copy(b.begin(), b.end(), std::ostream_iterator<std::string>(std::cout, " ")); std::cout << "\n";
    int count = 0;
    for (auto w : b)
        if (std::count(a.begin(), a.end(), w) == 0) {
            a.push_back(w);
            count++;
        }
    std::cout << "Count: " << count << "; Length a: " << a.size() << "\n";
    std::copy(a.begin(), a.end(), std::ostream_iterator<std::string>(std::cout, " ")); std::cout << "\n";
    system("pause");
    return 0;
}
Пример

Файл a:
one two three
Файл b:
two three four five
Результат:
one two three
two three four five
Count: 2; Length a: 5
one two three four five
Press any key to continue . . .
1
0 / 0 / 0
Регистрация: 01.04.2018
Сообщений: 7
01.04.2018, 15:52  [ТС] 3
Спасибо огромное!!!
0
0 / 0 / 0
Регистрация: 01.04.2018
Сообщений: 7
09.04.2018, 08:46  [ТС] 4
Помогите дописать код без использования классов реализующие контейнеры.
Само задание звучало так создать класс на языке с++ объекты которого реализуют вектор неограниченной ёмкости
В векторе хранятся слова. Обязательно реализовать член функцию int load(char* filename) предназначенную для наполнения вектора из указанного текстового файла и член функцию void preprocess(), очищающая слова от знаков препинания ведущих и концевых пробельных символов и преобразующая символы к нижнему регистру. Программа должна выполняться менее 1й секунды.

Программа создаёт 2вектора а и б из 2х файлов . Функция слияния добовляется в вектор а из вектора б которых нет в векторе а . Вывести количестводобавленых слов и общее количество слов в а.




C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <iostream>
#include <vector>
#include <iterator>
#include <algorithm>
#include <fstream>
#include <sstream>
#include <string>
 
std::vector<std::string> FileToVector(std::string path) {
    std::ifstream file(path.c_str());
    std::vector<std::string> v;
    std::string s;
    std::getline(file, s);
    std::stringstream ss(s);
    while (ss >> s) v.push_back(s);
    file.close();
    return v;
}
 
int main()
{
    std::vector<std::string> a = FileToVector("a.txt"), b = FileToVector("b.txt");
    std::copy(a.begin(), a.end(), std::ostream_iterator<std::string>(std::cout, " ")); std::cout << "\n";
    std::copy(b.begin(), b.end(), std::ostream_iterator<std::string>(std::cout, " ")); std::cout << "\n";
    int count = 0;
    for (auto w : b)
        if (std::count(a.begin(), a.end(), w) == 0) {
            a.push_back(w);
            count++;
        }
    std::cout << "Count: " << count << "; Length a: " << a.size() << "\n";
    std::copy(a.begin(), a.end(), std::ostream_iterator<std::string>(std::cout, " ")); std::cout << "\n";
    system("pause");
    return 0;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.04.2018, 08:46

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Чересстрочное слияние файлов
в проге через консоль Производный класс обеспечивает черезстрочное слияние двух текстовых файлов,...

Слияние двух файлов
Здравствуйте. В папке есть два тхт файла, как мне их соединить и записать в третий и в третьем...

Файл: Слияние файлов
Есть два текста, в которых записано последовательности положительных целых чисел по возрастанию....

Слияние больших файлов
Доброго времени суток! Есть несколько больших текстовых и excel файлов. Делаю импорт из них на...

Естественное слияние файлов
Естественное слияние файлов 0,5 мб

Слияние 2х файлов в третий файл
Составить программу сцепления двух файлов с созданием третьего файла Т.е. первый файл записывается...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.