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

Поиск нескольких элементов массива/вектора - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Перевод массива десятичных чисел в двоичный код http://www.cyberforum.ru/cpp-beginners/thread1523270.html
Есть такого вида код: #include <iostream> using namespace std; int i,j; void main() { setlocale(0, ""); int a, b; cout << "Введите число в dec: "; for (i = 0; i < 2; i++) cin >> a; cout << endl;
C++ Динамическое выделение памяти - сделать так, чтобы переменная стала видимой во всем коде У меня вопрос в том как сделать так чтобы plus стал видимым во всем коде а не только в блоке. Дело в том что мне нужно чтобы его размер менялся только в том случае если условие выполнялось и как тогда в таком случае применять delete plus; #include<iostream> int main() { int N; std::cout<<"Enter the number of entries in the log: "; std::cin>>N; int* ps = new int; char* p = new char; http://www.cyberforum.ru/cpp-beginners/thread1523260.html
C++ Быстрая сортировка двумерного массива
Здравствуйте. У меня есть задание по сортировкам. Нужно заданный двумерный массив из рандомных чисел отсортировать по возрастанию по строкам. Прошу помочь только с быстрой сортировкой. Там выдает несколько ошибок, связанных с указателями, а я в них пока не так силён. Функция рекурсивная, поэтому немного запутался. Буду очень благодарен за помощь. #include <iostream> #include <stdio.h>...
Переставить местами четные и нечетные элементы в массиве C++
Здравствуйте уважаемые форумчани!Прошу с задачей мне помочь,нужно переставить местами четные и нечетные элементы в массиве.Например:(до) 1,2,3,4 (после) 2,1,4,3 вот код: #include<iostream> using namespace std; int *str=new int; int n=1; void sort(int *num) { int b,i; bool c;
C++ Найти ортоцентр (точка пересечения высот) треугольника http://www.cyberforum.ru/cpp-beginners/thread1523222.html
Всем привет нужна помощь. Нужно найти ортоцентр(точка пересечения высот) треугольника. Даны координаты вершин.
C++ Из одномерного массива целых чисел вывести на экран непарные из них, отсортированные по убыванию Необходимо переделать (создать один стационарный указатель) , а как не знаю. Может кто код немного подправить и обьяснить? После введения из клавиатуры произвольного одномерного массива целых чисел (в пределах знакового целого типа) вывести на экран непарные из них (по 10 в строке у виде столбцов), отсортированные за убыванием. Введение каждого числа завершуеться нажатиям <Enter>, введение... подробнее

Показать сообщение отдельно
DiffEreD
1430 / 767 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
03.09.2015, 17:32
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <vector>
#include <algorithm>
 
int main()
{
   std::vector<int> v1{1,2,3,4,5,6,7};
   std::vector<int> v2{1,2,3,4,0,6,7};
   std::vector<int> v3{2,5,7};
   std::cout << std::boolalpha;
   std::cout << std::includes(v1.begin(), v1.end(),
                              v3.begin(), v3.end()) << std::endl;
   std::cout << std::includes(v2.begin(), v2.end(),
                              v3.begin(), v3.end()) << std::endl;
}
Добавлено через 2 часа 34 минуты
Еще такой вариант для ассоциативных контейнеров. Но это для любителя С++11.
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 <string>
#include <set>
#include <map>
#include <type_traits>
#include <initializer_list>
 
template <template<typename...> class Cont, typename... TArgs, typename... Args>
bool find_elems(const Cont<TArgs...> &cont, const Args &... args)
{
   using key_type = typename std::remove_reference<decltype(cont)>::type::key_type;
   using key_compare = typename std::remove_reference<decltype(cont)>::type::key_compare;
 
   std::multiset<key_type, key_compare> v = {args...};
   for(const auto &key : v)
      if (cont.find(key) == cont.end())  return false;
   return true;
}
 
int main()
{
   std::set<int> s{1,2,3,4,5,6,7};
   std::map<std::string, int> m{{"hello", 1}, {"abc", 2}, {"abra", 5}, {"world", 4}};
 
   std::cout << std::boolalpha;
   std::cout << find_elems(s, 3,2,7,1) << std::endl;
   std::cout << find_elems(s, 0,3,2,7,0,1) << std::endl;
 
   std::cout << find_elems(m, "hello", "world") << std::endl;
   std::cout << find_elems(m, "hello", "world", "wrong") << std::endl;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru