1 / 1 / 1
Регистрация: 07.03.2015
Сообщений: 76
1

Перегрузка оператора + для структуры

29.12.2016, 14:45. Показов 1910. Ответов 3
Метки нет (Все метки)

У нас есть две строки S1, S2 .После выполнения S3 = S1 + S2 :
1)в S3 должны быть символы входящие в S1 и в S2 одновременно.
2)Посчитать кол-во повторений символов.
Если кто то может помочь, буду благодарен.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.12.2016, 14:45
Ответы с готовыми решениями:

Перегрузка оператора для структуры в классе
Ошибка overloaded 'operator==' must be a binary operator (has 3 parameters) строка 108. Как...

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

Перегрузка оператора == для string для структуры
Есть программа #include <iostream> #include <conio.h> #include <fstream> #include <string>...

Перегрузка оператора += и = для очереди
Доброе утро! += - сложение очередей, а = присваивание. Просто мне нужно перегрузить -, а получается...

3
Форумчанин
Эксперт CЭксперт С++
8190 / 5040 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
29.12.2016, 15:29 2
Лучший ответ Сообщение было отмечено Xleb как решение

Решение

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
#include <algorithm>
#include <iostream>
#include <iterator>
#include <string>
 
struct String : public std::string
{
    String() : std::string() {}
    String(const char *str) : std::string(str) {}
};
 
String operator+(const String &lhs, const String &rhs)
{
    String tmp1(lhs), tmp2(rhs), result;
    std::sort(tmp1.begin(), tmp1.end());
    std::sort(tmp2.begin(), tmp2.end());
    std::set_intersection(tmp1.begin(), tmp1.end(), tmp2.begin(), tmp2.end(), std::back_inserter(result));
    return result;
}
 
int main()
{
    String s1 = "Eniki ", s2 = "beniki", s3 = s1 + s2;
    std::cout << s3;
}
Цитата Сообщение от Xleb Посмотреть сообщение
Посчитать кол-во повторений символов.
То есть вывести сколько раз встречается каждый символ в заданной строке?
1
1 / 1 / 1
Регистрация: 07.03.2015
Сообщений: 76
29.12.2016, 16:12  [ТС] 3
всё что выделено зеленым, это функции из #include <string>?
C++
1
2
 String() : std::string() {}
    String(const char *str) : std::string(str) {}
Это конструкторы по умолчанию?
С повторением, я уже разобрался)Благодарю)
0
Форумчанин
Эксперт CЭксперт С++
8190 / 5040 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
29.12.2016, 16:35 4
Цитата Сообщение от Xleb Посмотреть сообщение
всё что выделено зеленым, это функции из #include <string>?
В данном фрагменте кода я описываю конструкторы для пользовательской структуры, которые принимают данные и отдают их базовому классу std::string

Добавлено через 55 секунд
вызывая конструкторы базового класса std::string (которая является специализацией класса std::basic_string). Всё это определено в заголовочном файле string.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.12.2016, 16:35
Помогаю со студенческими работами здесь

Перегрузка оператора + для стека
Добрый день. Прошу помощи с перегрузкой этой операции. Цель: перегрузить + так,чтобы он складывал...

Перегрузка оператора * и / для строки
Есть класс MyString нужно написать перезагрузку Операция *: должна вернуть новую строку, которая...

Перегрузка оператора >> << для файлов
Здравствуйте. такая вещь, я перегрузил операторы записи и чтения в файл для текстового и двоичного...

Перегрузка оператора == для string
#include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;fstream&gt; #include &lt;string&gt; #include &lt;stdlib.h&gt;...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru