BG Development


  Reply to this topicStart new topicStart Poll

> offset out of range
cyber_dude
Публикувано на: 04-08-2018, 14:35
Quote Post



Име:
Група: Потребител
Ранг: Новопостъпил

Мнения: 9
Регистриран на: 03.01.18



Моля някой ако може да ми обясни, защо ми изкарва тази грешка... Всичко в кода ми уж е наред, а немога да разбера на какво се дължи...
CODE

#include "stdafx.h"
#include <iostream>
#include <functional>            
#include <algorithm>      
#include <vector>
using namespace std;


int _tmain(int argc, _TCHAR* argv[])
{
      const int MAXSIZE = 6;
      int a[MAXSIZE] = { 5, 9, 7, 12, 21, 40 };
      int b[MAXSIZE] = { 3, 4, 3, 5, 6, 20 };

      vector<int> vecA(a, a + MAXSIZE);
      vector<int> vecB(b, b + MAXSIZE);
      vector<int> vecC;
      typedef vector<int>::iterator int_iter;

      transform(vecA.begin(), vecA.end(), vecB.begin(), vecC.begin(), modulus<int>());

      cout << "Vector C = ";
      for (int_iter iter = vecC.begin(); iter != vecC.end(); iter++)
      {
            cout << *iter << " ";
    
      }
      cout << endl;

      
      return 0;
}


Това мнение е било редактирано от cyber_dude на 04-08-2018, 14:38

Прикачена картинка
Прикачена картинка
PMEmail Poster
Top
Дон Реба
Публикувано на: 04-08-2018, 15:45
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 6923
Регистриран на: 11.11.06



че дебъгни го де
PM
Top
cyber_dude
Публикувано на: 04-08-2018, 16:12
Quote Post



Име:
Група: Потребител
Ранг: Новопостъпил

Мнения: 9
Регистриран на: 03.01.18



Сории за спама icon_rolleyes.gif , но впоследствие си разбрах грешката...
При декларирането на вектора vecC не съм използвал константата MAXSIZЕ за броя на елементите, които ще приеме като резултат от функцията transform..

CODE
#include "stdafx.h"
#include <iostream>
#include <functional>            
#include <algorithm>      
#include <vector>
using namespace std;

template <typename Iterator>
void print(Iterator begin, Iterator end)
{
      for (Iterator iter = begin; iter != end; iter++)
            cout << *iter << " ";
      cout << endl;
}

int _tmain(int argc, _TCHAR* argv[])
{
      const int MAXSIZE = 4;
      int a[MAXSIZE] = { 9, 8, 5, 4 };
      int b[MAXSIZE] = { 4, 3, 2, 3 };

      vector<int> vecA(a, a + MAXSIZE);
      vector<int> vecB(b, b + MAXSIZE);
      vector<int> vecC(MAXSIZE);

      transform(vecA.begin(), vecA.end(), vecB.begin(), vecC.begin(), modulus<int>());
      cout << "Vector A = "; print(vecA.begin(), vecA.end());
      cout << "Vector B = "; print(vecB.begin(), vecB.end());
      cout << "Vector C = "; print(vecC.begin(), vecC.end());

      return 0;
}


Това мнение е било редактирано от cyber_dude на 04-08-2018, 16:14
PMEmail Poster
Top
saruman
Публикувано на: 04-08-2018, 16:52
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 1980
Регистриран на: 21.07.10



CODE
transform(vecA.begin(), vecA.end(), vecB.begin(), back_inserter(vecC), modulus<int>());


--------------------
http://www.wefunkradio.com/radio/

Remember,remember the fifth of November
PMEmail Poster
Top
1 потребители преглеждат тази тема в момента (1 гости, 0 анонимни потребители)
Потребители, преглеждащи темата в момента:

Topic Options Reply to this topicStart new topicStart Poll

 


Copyright © 2003-2018 | BG Development | All Rights Reserved
RSS 2.0