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

Удаление из массива всех элементов, встречающихся ровно два раза - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.75
Машенька1
 Аватар для Машенька1
3 / 0 / 0
Регистрация: 19.02.2012
Сообщений: 60
04.03.2012, 21:18     Удаление из массива всех элементов, встречающихся ровно два раза #1
Дан целочисленный массив размера N. Удалить из массива все эле-менты, встречающиеся ровно два раза, и вывести размер полученного мас-сива и его содержимое
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.03.2012, 21:18     Удаление из массива всех элементов, встречающихся ровно два раза
Посмотрите здесь:

C++ Алгоритм выбора элементов, встречающихся в массиве более одного раза
C++ количество элементов в массиве встречающихся 2 раза
Даден массив. Все четные елементы массива уменьшыть в два раза, а нечетные увеличить в два раза. C++
Удаление четных элементов массива,больших среднего арифметического всех элементов массива C++
C++ Удалить из массива все элементы, встречающиеся ровно два раза
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nameless
Эксперт C++
 Аватар для nameless
289 / 288 / 14
Регистрация: 16.06.2009
Сообщений: 486
04.03.2012, 21:56     Удаление из массива всех элементов, встречающихся ровно два раза #2
Машенька1,

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
#include <iostream>
#include <vector>
#include <algorithm>
 
int main() {
   std::vector <int> array = { 0, -1, 1, 0, 5, 4, 1, 3, 1, 3, 5 }; 
   for (int value : array) {
      if (std::count(
            array.begin(),
            array.end(),
            value
         ) == 2) { 
         array.erase(
            std::remove(
               array.begin(),
               array.end(),
               value
            ),
            array.end()
         );
      }    
   }
   
   std::cout << array.size() << std::endl;
   
   for (int value : array) {
      std::cout << value << " ";
   }
 
   return 0;
}
http://liveworkspace.org/code/05732f...0d8384a93f1793
Машенька1
 Аватар для Машенька1
3 / 0 / 0
Регистрация: 19.02.2012
Сообщений: 60
04.03.2012, 22:27  [ТС]     Удаление из массива всех элементов, встречающихся ровно два раза #3
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
#include <iostream>
#include <vector>
#include <algorithm>
 
int main() {
   std::vector <int> array = { 0, -1, 1, 0, 5, 4, 1, 3, 1, 3, 5 }; 
   for (int value : array) {
      if (std::count(
            array.begin(),
            array.end(),
            value
         ) == 2) { 
         array.erase(
            std::remove(
               array.begin(),
               array.end(),
               value
            ),
            array.end()
         );
      }    
   }
   
   std::cout << array.size() << std::endl;
   
   for (int value : array) {
      std::cout << value << " ";
   }
 
   return 0;
}
Помогите перевести из С в С++
defer
秘密
 Аватар для defer
555 / 235 / 3
Регистрация: 29.11.2010
Сообщений: 783
04.03.2012, 22:49     Удаление из массива всех элементов, встречающихся ровно два раза #4
это и есть с++
Машенька1
 Аватар для Машенька1
3 / 0 / 0
Регистрация: 19.02.2012
Сообщений: 60
05.03.2012, 09:48  [ТС]     Удаление из массива всех элементов, встречающихся ровно два раза #5
программа 8 ошибок выдает,не пойму
Машенька1
 Аватар для Машенька1
3 / 0 / 0
Регистрация: 19.02.2012
Сообщений: 60
05.03.2012, 09:49  [ТС]     Удаление из массива всех элементов, встречающихся ровно два раза #6
но программа 8 ошибок выдает
defer
秘密
 Аватар для defer
555 / 235 / 3
Регистрация: 29.11.2010
Сообщений: 783
05.03.2012, 09:59     Удаление из массива всех элементов, встречающихся ровно два раза #7
какие ошибки?
Машенька1
 Аватар для Машенька1
3 / 0 / 0
Регистрация: 19.02.2012
Сообщений: 60
05.03.2012, 10:06  [ТС]     Удаление из массива всех элементов, встречающихся ровно два раза #8
Код
c:\documents and settings\пользователь\naarray.cpp(6) : error C2552: 'array' : non-aggregates cannot be initialized with initializer list
c:\documents and settings\пользователь\naarray.cpp(7) : error C2143: syntax error : missing ',' before ':'
c:\documents and settings\пользователь\naarray.cpp(7) : error C2059: syntax error : ':'
c:\documents and settings\пользователь\naarray.cpp(7) : error C2143: syntax error : missing ';' before '{'
c:\documents and settings\пользователь\naarray.cpp(24) : error C2143: syntax error : missing ',' before ':'
c:\documents and settings\пользователь\naarray.cpp(24) : error C2086: 'value' : redefinition
c:\documents and settings\пользователь\naarray.cpp(24) : error C2059: syntax error : ':'
c:\documents and settings\пользователь\naarray.cpp(24) : error C2143: syntax error : missing ';' before '{'
fasked
Эксперт C++
 Аватар для fasked
4925 / 2505 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
05.03.2012, 10:23     Удаление из массива всех элементов, встречающихся ровно два раза #9
Машенька1, у Вас старый компилятор для такого синтаксиса.
Frequencies
0 / 0 / 2
Регистрация: 25.09.2011
Сообщений: 49
05.03.2012, 10:27     Удаление из массива всех элементов, встречающихся ровно два раза #10
Цитата Сообщение от fasked Посмотреть сообщение
Машенька1, у Вас старый компилятор для такого синтаксиса.
неужели 10 студия с подобным не может справиться?
Машенька1
 Аватар для Машенька1
3 / 0 / 0
Регистрация: 19.02.2012
Сообщений: 60
05.03.2012, 10:30  [ТС]     Удаление из массива всех элементов, встречающихся ровно два раза #11
мы с 10 не работаем( а нельзя переделать под старую?
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
05.03.2012, 10:42     Удаление из массива всех элементов, встречающихся ровно два раза #12
Цитата Сообщение от nameless Посмотреть сообщение
Машенька1,

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
#include <iostream>
#include <vector>
#include <algorithm>
 
int main() {
   std::vector <int> array = { 0, -1, 1, 0, 5, 4, 1, 3, 1, 3, 5 }; 
   for (int value : array) {
      if (std::count(
            array.begin(),
            array.end(),
            value
         ) == 2) { 
         array.erase(
            std::remove(
               array.begin(),
               array.end(),
               value
            ),
            array.end()
         );
      }    
   }
   
   std::cout << array.size() << std::endl;
   
   for (int value : array) {
      std::cout << value << " ";
   }
 
   return 0;
}
http://liveworkspace.org/code/05732f...0d8384a93f1793

Не по теме:

Эх, вот как теперь просто в 10 студии писать, с точки зрения объема кода.

fasked
Эксперт C++
 Аватар для fasked
4925 / 2505 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
05.03.2012, 10:59     Удаление из массива всех элементов, встречающихся ровно два раза #13
Цитата Сообщение от Frequencies Посмотреть сообщение
неужели 10 студия с подобным не может справиться?
Не может. В данном коде используется так называемый initializer_list, который был добавлен в стандарт C++11. В Visual Studio 2010 не поддерживается.
Машенька1
 Аватар для Машенька1
3 / 0 / 0
Регистрация: 19.02.2012
Сообщений: 60
05.03.2012, 11:01  [ТС]     Удаление из массива всех элементов, встречающихся ровно два раза #14
че мне теперь делать?
fasked
Эксперт C++
 Аватар для fasked
4925 / 2505 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
05.03.2012, 11:14     Удаление из массива всех элементов, встречающихся ровно два раза #15
Цитата Сообщение от Машенька1 Посмотреть сообщение
че мне теперь делать?
Подумать головой, все равно Вашему преподавателю скорее не понравится такое решение, думаю, он хочет увидеть велосипедный алгоритм, а не использование STL.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <vector>
#include <iostream>
#include <iterator>
#include <algorithm>
 
int main() 
{
   int data[] = { 0, -1, 1, 0, 5, 4, 1, 3, 1, 3, 5 }; 
 
   std::vector <int> in, out; 
   std::copy(data, data + sizeof(data)/sizeof(data[0]), std::back_inserter(in)); 
 
   for (std::vector<int>::iterator it = in.begin(); it != in.end(); ++it)
      if (std::count(in.begin(), in.end(), *it) != 2)
         out.push_back(*it);
     
   std::copy(out.begin(), out.end(), std::ostream_iterator<int>(std::cout, " "));
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.03.2012, 11:20     Удаление из массива всех элементов, встречающихся ровно два раза
Еще ссылки по теме:

Вывести элементы массива, которые повторяются ровно два раза C++
C++ Дан двумерный массив целых чисел. Вычислить количество четных чисел среди элементов, встречающихся в массиве ровно 3 раза
Определить элементы массива, которые входят в него ровно два раза C++

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

Или воспользуйтесь поиском по форуму:
zulkis
05.03.2012, 11:20     Удаление из массива всех элементов, встречающихся ровно два раза
  #16

Не по теме:

fasked, ну на то и подрастающее поколение, то есть Мы! Поддержим новые компиляторы!

Yandex
Объявления
05.03.2012, 11:20     Удаление из массива всех элементов, встречающихся ровно два раза
Ответ Создать тему
Опции темы

Текущее время: 12:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru