1

Тема: Що не так з ітератором ?

    std::vector <std::string> data;
    LoadIpData(L"G:\\ruM1.bin", data);
    printf("%d\n", data.size());
    
    std::vector <std::string> *tasks = new std::vector <std::string>[ThreadsNum];
    int partSize = data.size() / ThreadsNum;
    std::vector <std::string>::iterator it_cpy=data.begin();
    for (int i = 0; i < (ThreadsNum - 1); i++)
    {
        std::copy(it_cpy, it_cpy + partSize, tasks[i].begin());
        it_cpy += partSize;
    }
    std::copy(it_cpy, data.end(), tasks[ThreadsNum - 1].begin());

2

Re: Що не так з ітератором ?

Із ним не так те, що він тут є. За умовою, яку ви надали, його не має тут бути. Як і всього іншого.
Так що давайте умову і пояснення, чому ви вважаєте, що щось тут не так - а без цього ідіть на шоу екстрасенсів.

Подякували: 0xDADA11C7, LoganRoss2

3

Re: Що не так з ітератором ?

koala написав:

Із ним не так те, що він тут є. За умовою, яку ви надали, його не має тут бути. Як і всього іншого.
Так що давайте умову і пояснення, чому ви вважаєте, що щось тут не так - а без цього ідіть на шоу екстрасенсів.

Нажаль я вас не розумію.

4

Re: Що не так з ітератором ?

Нажаль я вас не розумію.

А що треба зробити взагалi?

5

Re: Що не так з ітератором ?

cheappi386 написав:
koala написав:

давайте умову і пояснення, чому ви вважаєте, що щось тут не так

Нажаль я вас не розумію.

Я вас теж.

6

Re: Що не так з ітератором ?

Не ясно що ви хочете зробити. В даному випадку ви не розіменовуєте ітератори, але намагаєтесь їх копіювати, переписуючи ярлики на елементи вектора і з цього виходить якась дурниця. І я згідний з koala, ітератора, по ідеї, тут бути не повинно, хоча незрозуміло що ви хочете зробити.

7

Re: Що не так з ітератором ?

Vi написав:

А що треба зробити взагалi?

Розкласти вектор на N частин

8

Re: Що не так з ітератором ?

cheappi386 написав:
Vi написав:

А що треба зробити взагалi?

Розкласти вектор на N частин

Тобто щось типа:

// ConsoleApplication1.cpp: определяет точку входа для консольного приложения.
//

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

int main()
{
    vector<int> v = { 1,2,3,4,5,6,7,8,9,10 };
    vector<vector<int>> va;

    int n = 2,i=0,l=v.size()/n; 
    va.resize(n);
    for_each(v.begin(), v.end(), [&va,&i,l](int j) {
        va.at(i/l).push_back(j);
        i++;
    });
    for_each(va.begin(), va.end(), [](vector<int> j) {
        for_each(j.begin(), j.end(), [](int j) {
            cout << j << '\t';
        });
        cout << endl;
    });
    cin.get();
    return 0;
}

Так?

9

Re: Що не так з ітератором ?

Vi написав:

Так?

Не на 2 а на довільну кількість - "N".

10

Re: Що не так з ітератором ?

Ну то поставь там операцiю вводу значення  :D

11

Re: Що не так з ітератором ?

Vi написав:

Ну то поставь там операцiю вводу значення  :D

push_back

Ну й що воно воно буде, при кількості елементів в декілька мільйонів ?