Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.71
Айгуль
0 / 0 / 0
Регистрация: 09.04.2012
Сообщений: 8
#1

Контейнер set - C++

21.06.2012, 11:13. Просмотров 1941. Ответов 23
Метки нет (Все метки)

Два множества, элементами которого являются строчные буквы латинского алфавита, представлены с помощью стандартного типа SET. В программе выводится на экран их декартово произведение.
Задаю два итератора, первый работает нормально, а второй - нет. Как их правильно задавать, чтобы они не конфликтовали?
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
36
37
38
39
40
#include <cstdlib>
#include <iostream>
#include <set>
using namespace std;
 
const int size=26;
 
void main()
{
    setlocale(LC_ALL,"Russian");
 
    char *s1=new char[size+1];
    char *s2=new char[size+1];
 
    //ввод данных
 
    set <char> set1;
    set <char> set2;
 
    cout<<"Введите первый вектор (без пробелов)\n";
    cin>>s1;
    s1=strlwr(s1);
    for (int i=0;i<strlen(s1);i++)
        set1.insert(s1[i]);
 
    cout<<"Введите второй вектор (без пробелов):\n";
    cin>>s2;
    s2=strlwr(s2);
    for (int i=0;i<strlen(s2);i++)
        set2.insert(s2[i]);
 
    //вычисление декартового произведения
    set<char>::iterator i;  //итераторы для прохода по множествам
    set<char>::iterator j;
    for (i=set1.begin();i!=set1.end();i++)
        for (j=set2.begin();j!=set2.end();j++);
            cout<<"("<<*i<<","<<*j<<")\n";
 
    system("pause");
}
Добавлено через 17 минут
Небольшая опечатка: в выводе после объявления второго цикла не должно быть точки с запятой
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.06.2012, 11:13     Контейнер set
Посмотрите здесь:

Контейнер set - C++
Есть текст на агл. языке. Используя контейнер set нужно упорядочить слова этого текста в алфавитном порядке. Вот то, что я сделал: ...

контейнер set - C++
Создать контейнер set, ввести в него 3 числа. Создать метод по вычислении наибольшего из этих чисел помогите, пожалуйста, с заданием или...

STL, контейнер set - C++
Помогите, пожалуйста. Задание состоит вот в чем: даны названия городов, и для них перечислены города, в которые можно попасть без...

Массив типа set (контейнер) - C++
Как создать массив set'ов (контейнеров) и как с ним дальше работать? если возможно, напишите пример. Заранее очень благодарен.

Ввод данных в контейнер set - C++
Здравствуйте! В первое множество элементы вводятся нормально, но вот во второе множество кладется только последнее значение из первого...

STL контейнер set, вставка элементов - C++
Уважаемые админы.Снова прошу о помощи. Необходимо в множество bred,начиная с позиции n, вставить элементы из множества new_bred. ...

Используя STL контейнер set заполнить массив - C++
Задание 2. Данную задачу решить не используя метод sort, а используя STL контейнер: set. Заполнить массив размером 10 случайными числами от...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1286 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
21.06.2012, 11:30     Контейнер set #2
В коде ошибок не вижу. В чём выражается конфликт?
MrGluck
Модератор
Эксперт CЭксперт С++
7163 / 4329 / 632
Регистрация: 29.11.2010
Сообщений: 11,751
21.06.2012, 12:21     Контейнер set #3
А я вижу ненужную глобальную переменную, void main и неосвобожденную память. А еще set-ы зачем то векторами называют.
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1286 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
21.06.2012, 12:46     Контейнер set #4
Цитата Сообщение от MrGluck Посмотреть сообщение
А я вижу ненужную глобальную переменную
Покажи, где там ненужная глобальная переменная?


Цитата Сообщение от MrGluck Посмотреть сообщение
А еще set-ы зачем то векторами называют.
Вектора вводятся и потом копируются в множество. Нормально всё.
MrGluck
Модератор
Эксперт CЭксперт С++
7163 / 4329 / 632
Регистрация: 29.11.2010
Сообщений: 11,751
21.06.2012, 13:01     Контейнер set #5
Цитата Сообщение от Deviaphan Посмотреть сообщение
Покажи, где там ненужная глобальная переменная?
C++
1
const int size=26;
Цитата Сообщение от Deviaphan Посмотреть сообщение
Вектора вводятся и потом копируются в множество. Нормально всё.
можно ввести в заблуждение
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1286 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
21.06.2012, 13:32     Контейнер set #6
Цитата Сообщение от MrGluck Посмотреть сообщение
const int size=26;
Я ненужную просил. Эта нужная.
MrGluck
Модератор
Эксперт CЭксперт С++
7163 / 4329 / 632
Регистрация: 29.11.2010
Сообщений: 11,751
21.06.2012, 13:43     Контейнер set #7
Цитата Сообщение от Deviaphan Посмотреть сообщение
Я ненужную просил. Эта нужная.
Цитата Сообщение от MrGluck Посмотреть сообщение
А я вижу ненужную глобальную переменную
Ключевое слово тут глобальную

С каких пор стало модно объявлять переменные где попало?
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 320
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
21.06.2012, 13:43     Контейнер set #8
Deviaphan, Ну глобальной ей быть абсолютно не нужно.
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1286 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
21.06.2012, 13:49     Контейнер set #9
В данном случае соглашусь.)
Avazart
Эксперт С++
7117 / 5294 / 273
Регистрация: 10.12.2010
Сообщений: 23,413
Записей в блоге: 17
21.06.2012, 14:02     Контейнер set #10
Не понял... так она const смысл?

А если по сути:
C++
1
2
3
4
5
6
 //вычисление декартового произведения
set<char>::iterator i;  //итераторы для прохода по множествам
set<char>::iterator j;
 
for (i=set1.begin(); i!=set1.end(); i++)
     for (j=set2.begin(); j!=set2.end(); j++)  cout<<"("<<*i<<","<<*j<<")\n";
Непонятно что должны делать эти строки.
MrGluck
Модератор
Эксперт CЭксперт С++
7163 / 4329 / 632
Регистрация: 29.11.2010
Сообщений: 11,751
21.06.2012, 14:04     Контейнер set #11
Цитата Сообщение от Avazart Посмотреть сообщение
Не понял... так она const смысл?
Размеры лучше бы в const загонять. Уж лучше ошибка компилирования, чем ошибка времени исполнения.
Avazart
Эксперт С++
7117 / 5294 / 273
Регистрация: 10.12.2010
Сообщений: 23,413
Записей в блоге: 17
21.06.2012, 14:14     Контейнер set #12
Смысл придираться к тому что она глобальная, если она объявлена как const?
MrGluck
Модератор
Эксперт CЭксперт С++
7163 / 4329 / 632
Регистрация: 29.11.2010
Сообщений: 11,751
21.06.2012, 14:17     Контейнер set #13
Цитата Сообщение от Avazart Посмотреть сообщение
Смысл придираться к тому что она глобальная, если она объявлена как const?
И поэтому надо объявлять её абы где без надобности?
Avazart
Эксперт С++
7117 / 5294 / 273
Регистрация: 10.12.2010
Сообщений: 23,413
Записей в блоге: 17
21.06.2012, 14:29     Контейнер set #14
А разница? И почему а бы где?
Ну на #define в С при объявлении констант никто не жалуется?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.06.2012, 14:40     Контейнер set
Еще ссылки по теме:

Контейнер set. Найти имена всех файлов в папке - C++
Здравствуйте . Есть такая задача : найти имена всех файлов в папке . Имена я нахожу нормально , но сохраняю каждое имя в отдельный индекс...

контейнер - C++
Создать контейнер, в который можно добавлять и удалять методы. Размер контейнера должен увеличиваться автоматически. Вот такое задание ,...

контейнер vector - C++
Как я понимаю, vector представляет собой что-то вроде динамического массива. Но массивы бывают одномерные,двумерные и так далее. Есть ли...

Контейнер hash_map - C++
Здорова! Нужно создать контейнер hash_map это тот же контейнер как и map, только он в разы иногда раз в 10-20 быстрее осуществляет поиск...

класс-контейнер - C++
ArrayList — реализует интерфейс List. Как известно, в Java массивы имеют фиксированную длину, и после того как массив создан, он не может...


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

Или воспользуйтесь поиском по форуму:
MrGluck
Модератор
Эксперт CЭксперт С++
7163 / 4329 / 632
Регистрация: 29.11.2010
Сообщений: 11,751
21.06.2012, 14:40     Контейнер set #15
Цитата Сообщение от Avazart Посмотреть сообщение
А разница? И почему а бы где?
Ну на #define в С при объявлении констант никто не жалуется?
Время создания и удаления глобальной переменной не предопределено. Использовать их следует лишь в крайнем случае, здесь же автор просто не видит разницы между

C++
1
2
3
int main()
{
    int a;
и
C++
1
2
3
4
int a
 
int main()
{
Поэтому лучше сразу показать на место возможных ошибок в будущем и мб даже предотвратить бессонные ночи с кружкой кофе, красными глазами, взъерошенными волосами и вопросом "Ну почему?"
Yandex
Объявления
21.06.2012, 14:40     Контейнер set
Ответ Создать тему
Опции темы

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