Вектор и стандартные алгоритмы STL

Всем привет! Недавно начал осваивать STL и столкнулся с трудностями в решении задачи. Звучит она таким образом: Используя «Вектор» и стандартные алгоритмы библиотеки STL найти:
1) произведение элементов массива с четными номерами
Мои наброски:

#include <iostream>
#include <vector>
#include <list>

using namespace std;

void g ( vector <int> &v, list <int> &lst )
{
  int i;

  for ( i = 0; i < v.size(); ++i )
    if ( !(v[i] % 2) ) lst.push_back ( v[i] );

  list < int > :: const_iterator  p = lst.begin ();
  while ( p != lst.end () )
  {
    cout << *p << endl;
    ++p;
  }
}

int main ()
{
  vector < int > v(20);  list < int >  lst;
  int i;

  for ( i = 0; i < 20; ++i ) v[i] = i;
  cout << "vector is created" << endl;
  g ( v, lst );
  return 0;
}

Как сделать произведение? С помощью multiplies? И что это за обычная адресация?

2) сумму элементов массива, расположенных между первым и последним нулевым элементами
В 1) использовать обычную адресацию, в 2) прямой и обратный итератор
3) отсортировать элементы вектор по возрастанию.
Я так понял здесь нужно использовать sort(v.begin(),v.end()); ?

Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.

Ответить

Вы можете использовать разметку markdown для оформления комментариев и постов. Используйте функцию предпросмотра для проверки корректности разметки.

Пожалуйста, оформляйте исходный код в соответствии с правилами разметки. Для того, чтобы вставить код в комментарий, скопируйте его в текстовое поле ниже, после чего выделите то, что скопировали и нажмите кнопку «код» в панели инструментов. Иначе ваш код может принять нечитаемый вид.

Либо производите оформление кода вручную, следующим образом:

``` #include <iostream> using namespace std; int main() { // ... } ```

Предпросмотр сообщения

Ваше сообщение пусто.