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

Многочлены над GF(2^m) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Цикл вычисления бесконечной суммы http://www.cyberforum.ru/cpp-beginners/thread689595.html
#include<iostream> #include<math.h> using namespace std; int main () {double k=0; double a=0; double e=0.001; while(a>=e)
C++ Проверьте пожалуйста код на правильность ! ! ! 2. Дан массив размера 5 x 6 с элементами целого типа. Написать программу для вычисления числа элементов массива кратных 3. За ранее спасибо ! #include "stdafx.h" #include <conio.h> #include <stdio.h> #include <math.h> void main () { int M; http://www.cyberforum.ru/cpp-beginners/thread689590.html
C++ Подключение файлов в проект
Здравствуйте. Запутался немного с подключением файлов, подскажите как лучше организовать. Собственно прикладываю картинку со схемой подключений и сам проект(сильно упрощенный, но нужные связи есть).
Метод Хука Дживса C++
нужна программа для решения f(x) = 2(X1 + 5)^2 +(X2 - 1)^2
C++ в php var_Dump , в c++ есть подобное? http://www.cyberforum.ru/cpp-beginners/thread689578.html
в php var_dump , в c++ есть подобное?
C++ рекурсивный ввод элементов И еще одна задача по рекурсии:( не пиайте сильно, но теперь совсем простая. Задача написать функцию, по рекурсивному вводу элементов матрицы. Опять же, можно только идею:(. подробнее

Показать сообщение отдельно
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
11.11.2012, 21:36     Многочлены над GF(2^m)
Если убрать надо с конца, то тот же код будет выглядеть так:
Кликните здесь для просмотра всего текста
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
#include <algorithm>
#include <array>
#include <iostream>
#include <vector>
 
template <typename TContent>
void erase_end_nulls(std::vector<TContent>& i_vector, const TContent& null_element)
{
   auto rit = std::find_if(i_vector.rbegin(), i_vector.rend(), [&](const TContent& i){ return i!=null_element; });
   if (rit != i_vector.rend())
   {
      i_vector.erase(rit.base(), i_vector.end());
   }
}
 
int main()
{
   std::array<int, 5> arr = {{42, 7, 0, 0, 0}};
   std::vector<int> data(arr.cbegin(), arr.cend());
   
   erase_end_nulls(data, 0);
      
   for (int i : data)
      std::cout << i << " ";
   return 0;
}

Да, идея тут такая - мы находим первый итератор, указывающей не на ноль, а затем удаляем все элементы от/до этого итератора.
можете заменить find_if на обычный цикл, который вам будет гораздо понятнее.
например
C++
1
2
3
4
5
6
7
8
for (auto rit = v.rbegin(); rit != v.rend(); ++rit)
{
   if (*rit != null_element)
   {
      v.erase(rit.base(), v.end());
      break;
   }
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru