powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / очень маленький вопросик!
11 сообщений из 11, страница 1 из 1
очень маленький вопросик!
    #33657334
есть вектор:
vector<int> vm (*kol);
заполненный в цикле. мне нужно получить минимальный элемент. ф-ей min воспользоваться не дает, т.к. требует более одного аргумента, чем указатель на вектор.
или это делается только в цикле?
...
Рейтинг: 0 / 0
очень маленький вопросик!
    #33657394
redskin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Добрыйесть вектор:
vector<int> vm (*kol);
заполненный в цикле. мне нужно получить минимальный элемент. ф-ей min воспользоваться не дает, т.к. требует более одного аргумента, чем указатель на вектор.

Так какие проблемы? Дайте ей эти два аргумента (начало и конец интервала)
Пример:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
vector<int>  v;
v.push_back( 5 );
v.push_back( 2 );
v.push_back( 3 );
v.push_back( 4 );
v.push_back( 1 );
v.push_back( 9 );
v.push_back( 8 );

int m = *min_element(v.begin(), v.end());
cout << m;
...
Рейтинг: 0 / 0
очень маленький вопросик!
    #33659054
есть 3 вектора. в третий вектор запихиваем сумму элементов первых двух векторов.
...
v = (*pV1)[j] + (*pV2)[j];
...
пропускаю по шагам. вижу такую вещь:
(*pV1)[j] = 0
(*pV2)[j] = 0
результат:
v = -33686019
Почему? почему я не получаю в данном случае 0?
...
Рейтинг: 0 / 0
очень маленький вопросик!
    #33659135
redskin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Добрыйесть 3 вектора. в третий вектор запихиваем сумму элементов первых двух векторов.
...
v = (*pV1)[j] + (*pV2)[j];
...
пропускаю по шагам. вижу такую вещь:
(*pV1)[j] = 0
(*pV2)[j] = 0
результат:
v = -33686019
Почему? почему я не получаю в данном случае 0?


Какой тип у переменных v, pV1, pV2?
вектор и указатели на вектор?
А как тогда этот фрагмент вообще компилируется? В первой строке вектору присваивается сумма двух целых (или какой там тип содержимого вектора). Вот рабочий кусок делающий примерно то, что вы хотите:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
    vector<int>  v1, v2, v3;
    vector<int>  *pv1 = &v1, *pv2 = &v2;

    v1.push_back( 0 );
    v2.push_back( 0 );
    
    v3.resize( 1 );
    v3[ 0 ] = (*pv1)[ 0 ] + (*pv2)[ 0 ];

    cout << v3[ 0 ];

если это то что надо, то это работает :)
...
Рейтинг: 0 / 0
очень маленький вопросик!
    #33659309
Хм, ну да, работает.
у меня сделано по тому же принципу. а именно:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
vector<vector<int> > v1, v2;
vector<vector<int> >  *pV1 = &v1, *pV2 = &v2;
//заполнили в цикле v1 и частично v2//
...
v2[i][j] = fun_min(&kol, &(*pV1), &(*pV2));
...
int fun_min(*kol, vector<vector<int> > *pV1, vector<vector<int> > *pV2)
{ 
   vector<int> v3(*kol);
   for (int i= 0 ; i<(*kol); i++)
   {  v3[i]=(*pV1)[i][j] + (*pV2)[i][j- 1 ]));
     // рез-тат я писал
     ...
    }
...
Рейтинг: 0 / 0
очень маленький вопросик!
    #33659909
странно, что мой код не работает. вернее работает, но выдает жуткое число со знаком "-". Че вообще с этим делать то? В каком направлении рыть? Пробовал через PLUS - та же фигня
...
Рейтинг: 0 / 0
очень маленький вопросик!
    #33659913
Станислав C.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Добрый
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
...
int fun_min(*kol, vector<vector<int> > *pV1, vector<vector<int> > *pV2)
{ 
   vector<int> v3(*kol);
   for (int i= 0 ; i<(*kol); i++)
   {  v3[i]=(*pV1)[i][j] + (*pV2)[i][j- 1 ];
     // рез-тат я писал
     ...
    }
странно, что мой код не работает. вернее работает, но выдает жуткое число со знаком "-". Че вообще с этим делать то? В каком направлении рыть? Пробовал через PLUS - та же фигня
Дорогой, а где у тебя переменная j определена? В функции ты ее не определил, а в параметрах она не передается... ИМХО из-за этого у тебя такая фигня...
...
Рейтинг: 0 / 0
очень маленький вопросик!
    #33659921
v2 [j]=fun_min((j-1), *kol, vector<vector<int> > *pV1, vector<vector<int> > *pV2)
...
Рейтинг: 0 / 0
очень маленький вопросик!
    #33659922
и соответственно он принимается как int j
...
Рейтинг: 0 / 0
очень маленький вопросик!
    #33659935
код какой-то кривой перед этим написался... я написал вот чего:
Код: plaintext
v2[j]=fun_min((j- 1 ), *kol, vector<vector<int> > *pV1, vector<vector<int> > *pV2)
v3 создаю так:
Код: plaintext
vector<int> v3(*kol,  0 );
проверил, изначально в нем нули.
а складывает он вообще удивительно: где угадает, где нет.
напр. при сложении двух нулей ответ стабильно -33686019
при сложении 7 и 9 ответ -33686012 (хотя это когда как. иногда он даже угадывает)
и т.д. откуда у него берется этот мусор??? как можно проверить?
...
Рейтинг: 0 / 0
очень маленький вопросик!
    #33660782
дык че с этой х... то делать???????
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / очень маленький вопросик!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]