С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
ChuckNorris
2 / 2 / 0
Регистрация: 25.10.2012
Сообщений: 42
#1

STL. Функция, которая будет искать элементы большее среднего арифметического вектора и удалять их из вектора - C++

23.09.2013, 12:59. Просмотров 537. Ответов 2
Метки нет (Все метки)

у меня есть вектор, помогите пожалуйста дописать функцию, которая будет искать элементы большее среднего арифметического вектора и удалять их из вектора

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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
#include <locale.h>
 
using namespace std;
 int size=7;
 
 
class Money
{
 
private:
    float c;
public:
 
    
     Money() : c(0){}
    Money(float a) : c(a){}
 
    float getC(){return c;};
    
 
    
    Money& operator*(Money &M){c *= M.c;return *this;};
    
    bool operator<(Money& m1){return this->getC() < m1.getC();};
    bool operator>(Money& m1){return this->getC() > m1.getC();};
 
    friend ostream &operator<<(ostream&out, const Money M){out<<M.c; return out;};
  
 
};
 
 
 
void out(vector<Money>&v)
{
    for(int i=0;i<size;++i)
        v.push_back(Money(rand()%10+2.5));
    cout<<"Our vector: "<<endl;
    copy(v.begin(),v.end(),ostream_iterator <Money>(cout, "\n  " ));
    cout<<endl;
    
};
 
 
int main()
{
    vector<Money> v;
    
 
    out(v);
    
    
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.09.2013, 12:59
Здравствуйте! Я подобрал для вас темы с ответами на вопрос STL. Функция, которая будет искать элементы большее среднего арифметического вектора и удалять их из вектора (C++):

Дан список, элементы которого являются координатами вектора. Найти длину вектора - C++
1. Дан список, элементы которого являются координатами вектора в n-мерном пространстве. Найти длину вектора.

Функция которая делает срез вектора - C++
здравствуйте подскажите с решением Написать ф-цию vector&lt;int&gt; slice(vector&lt;int&gt; v, int from, int to), которая делает срез вектора (как...

Определить количество элементов заданного массива, большее среднего арифметического - C++
#include &lt;conio.h&gt; #include &lt;stdio.h&gt; #include &lt;iostream&gt; #include &lt;fstream&gt; using namespace std; void main() { ...

Заменить первые два нулевые элементы заданного вектора В на два первых НЕ нулевые элементы этого вектора - C++
Дано вектор В, состоящий из N действительных чисел. Заменить первые два нулевые элементы заданного вектора В на два первых НЕ нулевые...

STL шаблон вектора - C++
можете кинуть ссылку или код STL шаблона vector

Заменить первых 2 нулевые элементы заданного вектора соответственно на первых 2 не нулевые элементы этого вектора - C++
Заданный вектор Т, который состоит из n действительных чисел. Заменить первых 2 нулевые элементы заданного вектора соответственно на первых...

2
DiffEreD
1432 / 769 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
23.09.2013, 13:29 #2
STL? Тогда примерно так:
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
41
42
43
44
45
46
47
48
49
50
51
52
#include <iostream>
#include <vector>
#include <iterator>
#include <functional>
#include <algorithm>
 
using namespace std;
int size=7;
 
class Money
{
 
private:
    float c;
public:
    Money() : c(0){}
    Money(float a) : c(a){}
 
    float getC(){return c;};
 
    Money& operator*(Money &M){c *= M.c;return *this;};
 
    bool operator<(Money& m1){return this->getC() < m1.getC();};
    bool operator>(Money& m1){return this->getC() > m1.getC();};
 
    operator float(){return c;}
 
};
 
void out(vector<Money>& v)
{
    for(int i=0;i<size;++i)
        v.push_back(Money(rand()%10+2.5));
};
 
int main()
{
   vector<Money> v;
   out(v);
 
   std::copy(v.begin(), v.end(), std::ostream_iterator<float>(std::cout, " "));
   std::cout << std::endl;
 
   float average = std::accumulate(v.begin(), v.end(), 0u) / v.size();
   std::cout << "Average is " << average << std::endl << std::endl;
   v.erase(std::remove_if(v.begin(), v.end(), std::bind2nd(std::greater<float>(), average)), v.end());
 
   std::copy(v.begin(), v.end(), std::ostream_iterator<float>(std::cout, " "));
   std::cout << std::endl;
 
   return 0;
}
1
ChuckNorris
2 / 2 / 0
Регистрация: 25.10.2012
Сообщений: 42
23.09.2013, 19:03  [ТС] #3
Цитата Сообщение от DiffEreD Посмотреть сообщение
STL? Тогда примерно так:
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
41
42
43
44
45
46
47
48
49
50
51
52
#include <iostream>
#include <vector>
#include <iterator>
#include <functional>
#include <algorithm>
 
using namespace std;
int size=7;
 
class Money
{
 
private:
    float c;
public:
    Money() : c(0){}
    Money(float a) : c(a){}
 
    float getC(){return c;};
 
    Money& operator*(Money &M){c *= M.c;return *this;};
 
    bool operator<(Money& m1){return this->getC() < m1.getC();};
    bool operator>(Money& m1){return this->getC() > m1.getC();};
 
    operator float(){return c;}
 
};
 
void out(vector<Money>& v)
{
    for(int i=0;i<size;++i)
        v.push_back(Money(rand()%10+2.5));
};
 
int main()
{
   vector<Money> v;
   out(v);
 
   std::copy(v.begin(), v.end(), std::ostream_iterator<float>(std::cout, " "));
   std::cout << std::endl;
 
   float average = std::accumulate(v.begin(), v.end(), 0u) / v.size();
   std::cout << "Average is " << average << std::endl << std::endl;
   v.erase(std::remove_if(v.begin(), v.end(), std::bind2nd(std::greater<float>(), average)), v.end());
 
   std::copy(v.begin(), v.end(), std::ostream_iterator<float>(std::cout, " "));
   std::cout << std::endl;
 
   return 0;
}
плохо считает среднее арифметическое и выводит его в int значении
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.09.2013, 19:03
Привет! Вот еще темы с ответами:

STL Пересечение множества и вектора - C++
Задание представлено так провести синхронизацию, чтобы в vector и map остались только имеющиеся в обоих контейнерах элементы. ...

STL . Обращение к 12 элементу вектора - C++
Добрый вечер, форумчане! Столкнулся вот с такой проблемой. Имеется вектор, заполненный числами, огромной длины. Но почему-то не хочет...

stl, перемещение элемента из вектора в стек - C++
Всем привет. Как переместить из вектора в вектор понятно std::remove_copy_if( vector1.begin(), vector1.end(),...

Вывод вектора (STL) справа налево - C++
Подскажите как вывести вектор начиная с его последнего элемента? for (vector&lt;char&gt;::iterator _pos = buffer.end() - 1; _pos &gt;=...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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