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

Не получаеться исправить ошибки - C++

Восстановить пароль Регистрация
 
Tommy Grafft
0 / 0 / 0
Регистрация: 10.10.2013
Сообщений: 9
07.11.2013, 16:11     Не получаеться исправить ошибки #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
32
33
34
35
36
37
38
39
#include <iostream>
#include <vector>
#include <algorithm>
#include <numeric>
#include <iterator>
 
int main()
{
int f, s;
 
   std::vector<int> vec = {1,2,3,0,4,5,6,0,1};
   std::cout << "Max elem has number: " << std::max_element(vec.begin(), vec.end())
   - vec.begin() << std::endl;
   std::vector<int>::iterator first_zero = std::find(vec.begin(), vec.end(), 0);
   if (first_zero == vec.end())
   {
      std::cerr << "No zero elements" << std::endl;
      return 1;
   }
   std::vector<int>::iterator second_zero = std::find(first_zero + 1, vec.end(), 0);
   if (second_zero == vec.end())
   {
      std::cerr << "Only one element equal to zero" << std::endl;
      return 1;
   }
   std::cout << "Mult between first 0 and second 0 is: " <<
   std::accumulate(first_zero + 1, second_zero, 1,const int f,const int s);
   return f * s;
   std::endl;
   int idx = 0;
   std::sort(vec.begin(), vec.end(), (&idx)const int, const int >> bool;
   {
      ++idx;
      return ((idx - 1) % 2);
   };
   std::cout << "Sorted array" << std::endl;
   std::copy(vec.begin(), vec.end(), std::ostream_iterator<int>(std::cout, " "));
   std::cout << std::endl;
}




2008\projects\buzgan victor\buzgan victor\por.cpp(27) : error C2059: syntax error : 'const'
d:\my doc\visual studio 2008\projects\buzgan victor\buzgan victor\por.cpp(29) : warning C4551: function call missing argument list
d:\my doc\visual studio 2008\projects\buzgan victor\buzgan victor\por.cpp(31) : error C2143: syntax error : missing ')' before 'const'
Build log was saved at "file://d:\My doc\Visual Studio 2008\Projects\Buzgan Victor\Buzgan Victor\Debug\BuildLog.htm"
Buzgan Victor - 3 error(s), 1 warning(s)
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.11.2013, 16:11     Не получаеться исправить ошибки
Посмотрите здесь:

C++ Исправить ошибки
C++ Исправить ошибки
C++ Исправить ошибки
Исправить ошибки C++
Исправить ошибки C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dzrkot
zzzZZZ...
 Аватар для dzrkot
516 / 346 / 53
Регистрация: 11.09.2013
Сообщений: 1,977
07.11.2013, 16:49     Не получаеться исправить ошибки #2
Цитата Сообщение от Tommy Grafft Посмотреть сообщение
std::accumulate(first_zero + 1, second_zero, 1,const int f,const int s);
я конечно сам не знаю, но почему здесь 5 аргументов?

оформлено очень нечитабельно, включили бы using namespace std; а то режет глаза обилие std::
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
07.11.2013, 17:42     Не получаеться исправить ошибки #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
32
#include <iostream>
#include <iterator>
#include <vector>
#include <functional>
#include <algorithm>
#include <numeric>
 
int main()
{
   std::vector<int> vec = {1,2,3,0,4,5,6,0,1};
   std::cout << "Max elem has number: " << *std::max_element(vec.begin(), vec.end()) << std::endl;
   std::vector<int>::iterator first_zero = std::find(vec.begin(), vec.end(), 0);
   if (first_zero == vec.end())
   {
      std::cerr << "No zero elements" << std::endl;
      return 1;
   }
   std::vector<int>::iterator second_zero = std::find(first_zero + 1, vec.end(), 0);
   if (second_zero == vec.end())
   {
      std::cerr << "Only one element equal to zero" << std::endl;
      return 1;
   }
   std::cout << "Mult between first 0 and second 0 is: "
             << std::accumulate(first_zero + 1, second_zero, 1u, std::multiplies<int>());
   std::cout << "\n\nSorted array" << std::endl;
   std::sort(vec.begin(), vec.end());
   std::copy(vec.begin(), vec.end(), std::ostream_iterator<int>(std::cout, " "));
   std::cout << std::endl;
 
   return 0;
}
Tommy Grafft
0 / 0 / 0
Регистрация: 10.10.2013
Сообщений: 9
28.11.2013, 18:17  [ТС]     Не получаеться исправить ошибки #4
Цитата Сообщение от DiffEreD Посмотреть сообщение
Могу предположить что должно было быть так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
------ Построение начато: проект: kol, Конфигурация: Debug Win32 ------
Compiling...
lok.cpp
c:\documents and settings\301-st12\мои документы\visual studio 2008\projects\kol\kol\lok.cpp(10) : error C2552: 'vec' : non-aggregates cannot be initialized with initializer list
        'std::vector<_Ty>' : Types with a base are not aggregate
        with
        [
            _Ty=int
        ]
Build log was saved at "file://c:\Documents and Settings\301-st12\Мои документы\Visual Studio 2008\Projects\kol\kol\Debug\BuildLog.htm"
kol - 1 error(s), 0 warning(s)
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
и что теперь мне делать если он не показывает ни страку ни какая ошибка
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
28.11.2013, 18:20     Не получаеться исправить ошибки #5
Tommy Grafft, твой компилятор не поддерживает initializer_list; можно заменить
Цитата Сообщение от DiffEreD Посмотреть сообщение
C++
1
std::vector<int> vec = {1,2,3,0,4,5,6,0,1};
на
C++
1
2
int vecData = {1,2,3,0,4,5,6,0,1};
std::vector<int> vec(vecData, vecData + sizeof (vecData) / sizeof (*vecData));
Yandex
Объявления
28.11.2013, 18:20     Не получаеться исправить ошибки
Ответ Создать тему
Опции темы

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