powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Передача вектора в функцию.
64 сообщений из 64, показаны все 3 страниц
Передача вектора в функцию.
    #39867570
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имеется структура Str1. На ее основе делается вектор
Код: plaintext
1.
vector<Str1> vStr1;

и инициализируется - около 1000 значений.
Далее вектор передается в функцию типа int Foo(vector<Str1> vstr), которая должна изменить значения полей структур непосредственно самого вектора vStr1.
Всячески варианты с int Foo(vector<Str1> *vstr) и int Foo(vector<Str1> &vstr) пробовал, но они не идут. Ошибок компиляции-выполнения нет, но на выходе ахинея.)
Как, в итоге, передать вектор в функцию чтобы вектор можно было в ней редактировать?

"Есть многое на свете, друг Горацио, что и не сразу в голову придет."
М. Твен "Приключения Геккельбери Финна"[/color ]
...
Рейтинг: 0 / 0
Передача вектора в функцию.
    #39867582
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBAВсячески варианты с int Foo(vector<Str1> *vstr) и int Foo(vector<Str1> &vstr) пробовал, но
они не идут.

Значит плохо пробовал, ибо они единственно верные. Причём второй вернее первого.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Передача вектора в функцию.
    #39867591
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBAИмеется структура Str1. На ее основе делается вектор
Код: plaintext
1.
vector<Str1> vStr1;

и инициализируется - около 1000 значений.
Далее вектор передается в функцию типа int Foo(vector<Str1> vstr), которая должна изменить значения полей структур непосредственно самого вектора vStr1.
Всячески варианты с int Foo(vector<Str1> *vstr) и int Foo(vector<Str1> &vstr) пробовал, но они не идут. Ошибок компиляции-выполнения нет, но на выходе ахинея.)
Как, в итоге, передать вектор в функцию чтобы вектор можно было в ней редактировать?

"Есть многое на свете, друг Горацио, что и не сразу в голову придет."
М. Твен "Приключения Геккельбери Финна"[/color ]

Вечер халявы для сутдетов
Код: plaintext
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.
#include "pch.h"
#include <iostream>
#include <vector>
using namespace std;
class Str1
{
public:
	int f1;
	int f2;
};

void Foo(vector<Str1> &  vStr)
{
	vStr.push_back({ 1,2 });
	vStr.push_back({ 3,4 });
	vStr.push_back({ 5,6 });
}

int main()
{
	auto vS = vector<Str1>();
	Foo(vS);

	cout << "Quantity:" << vS.size() << endl;
	for (auto it = vS.begin(); it != vS.end(); ++it)
		cout << " f1:" << (*it).f1 << " f2:" << (*it).f2 << endl;
}


...
Рейтинг: 0 / 0
Передача вектора в функцию.
    #39867596
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёё,Спасибо, но все равно ахинея.
Код: plaintext
1.
2.
3.
4.
5.
6.
3	1	2	2019-06-05 12:26:00	23161	23293	132	0	0	11320071475429242422962870476408253745900439793770910684839611498339765268014404936395415376878606539060841232866515822841269990571580063744.	3364531390168509570946593670063403957102172840568483435160286401658880.
4	1	2	2019-06-05 14:42:00	23259	23386	127	0	0	71061053206767231335290419438869451027886880981547709330927643776069469033442112144793532435628496288557050928584222306862363645562622526178436991952205423341655708171533962693422776433178535765826978447360.	8429771835985078174410628294459790600472833518789130913325974186583376241988234811867690212707893510144.
5	1	2	2019-06-06 14:05:00	23610	23695	85	0	0	446081395671004514473158387440660216381247281738051093173779195884108577903292074030635862547519043877453806698526205916499236939099560046252967061089684854267063142039623707857800559963585905183585530639629813775610929217784582291206231119092652704071193423346952478654464.	21120639092390279490016543401216637531519356108297928941445795843131668552525124734886251183756315214997031922628268362749203194371375104.
6	1	2	2019-06-06 14:09:00	23618	23703	85	0	0	inf.0	inf.0
7	1	2	2019-06-07 16:13:00	24147	24625	478	0	0	inf.0	inf.0
8	1	2	2019-06-10 10:00:00	24180	24619	439	0	0	inf.0	inf.0


Редактируются 2 последних столбца.

Функции были отлажены и работали в виде int Foo(), когда вектор был в области видимости и в функцию не передавался.
...
Рейтинг: 0 / 0
Передача вектора в функцию.
    #39867597
L.Otujktd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
YUBAИмеется структура Str1. На ее основе делается вектор
Код: plaintext
1.
vector<Str1> vStr1;

и инициализируется - около 1000 значений.
Далее вектор передается в функцию типа int Foo(vector<Str1> vstr), которая должна изменить значения полей структур непосредственно самого вектора vStr1.
Всячески варианты с int Foo(vector<Str1> *vstr) и int Foo(vector<Str1> &vstr) пробовал, но они не идут. Ошибок компиляции-выполнения нет, но на выходе ахинея.)
Как, в итоге, передать вектор в функцию чтобы вектор можно было в ней редактировать?

"Есть многое на свете, друг Горацио, что и не сразу в голову придет."
М. Твен "Приключения Геккельбери Финна"[/color ]
В другой поток случайно не передаете?
...
Рейтинг: 0 / 0
Передача вектора в функцию.
    #39867605
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L.Otujktd, нет, не передаю.
...
Рейтинг: 0 / 0
Передача вектора в функцию.
    #39867606
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBAёёёёё,Спасибо, но все равно ахинея.
Код: plaintext
1.
2.
3.
4.
5.
6.
3	1	2	2019-06-05 12:26:00	23161	23293	132	0	0	11320071475429242422962870476408253745900439793770910684839611498339765268014404936395415376878606539060841232866515822841269990571580063744.	3364531390168509570946593670063403957102172840568483435160286401658880.
4	1	2	2019-06-05 14:42:00	23259	23386	127	0	0	71061053206767231335290419438869451027886880981547709330927643776069469033442112144793532435628496288557050928584222306862363645562622526178436991952205423341655708171533962693422776433178535765826978447360.	8429771835985078174410628294459790600472833518789130913325974186583376241988234811867690212707893510144.
5	1	2	2019-06-06 14:05:00	23610	23695	85	0	0	446081395671004514473158387440660216381247281738051093173779195884108577903292074030635862547519043877453806698526205916499236939099560046252967061089684854267063142039623707857800559963585905183585530639629813775610929217784582291206231119092652704071193423346952478654464.	21120639092390279490016543401216637531519356108297928941445795843131668552525124734886251183756315214997031922628268362749203194371375104.
6	1	2	2019-06-06 14:09:00	23618	23703	85	0	0	inf.0	inf.0
7	1	2	2019-06-07 16:13:00	24147	24625	478	0	0	inf.0	inf.0
8	1	2	2019-06-10 10:00:00	24180	24619	439	0	0	inf.0	inf.0


Редактируются 2 последних столбца.

Функции были отлажены и работали в виде int Foo(), когда вектор был в области видимости и в функцию не передавался.
Код покажи. Весь.
...
Рейтинг: 0 / 0
Передача вектора в функцию.
    #39867607
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L.Otujktd, вот результаты той-же Foo(), без передачи в нее вектора.
Код: plaintext
1.
2.
3.
4.
5.
6.
23	1	2	10.07.2019 16:13	24921	25335	414	357.8913329	56.10866711	5127.906932	71.60940533	429.5007382	286.2819276
24	1	2	10.07.2019 17:33	24832	25303	471	358.2976702	112.7023298	5513.170345	74.25072623	432.5483964	284.0469439
25	1	2	10.07.2019 19:18	24791	25210	419	358.7810337	60.21896631	5886.387968	76.72279953	435.5038332	282.0582342
26	1	2	10.07.2019 19:20	24788	25785	997	360.2920523	636.7079477	6418.846007	80.11770096	440.4097532	280.1743513
27	1	2	11.07.2019 11:28	24680	25301	621	362.147348	258.852652	6961.566938	83.43600505	445.583353	278.7113429
28	1	2	11.07.2019 11:30	24630	25300	670	364.405094	305.594906	7525.255574	86.74823096	451.153325	277.656863
...
Рейтинг: 0 / 0
Передача вектора в функцию.
    #39867636
bk0010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ребилдол - лекарство от головной боли у программиста: сотрите все объектники и сделайте полную пересборку. Было однажды такое, когда добавил пару полей в тип, по которому создавался вектор.
...
Рейтинг: 0 / 0
Передача вектора в функцию.
    #39867647
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёё, ваш код
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
class Str1
{
public:
	int f1;
	int f2;
};

void Foo(vector<Str1> &  vStr)
{
	vStr.push_back({ 1,2 });
	vStr.push_back({ 3,4 });
	vStr.push_back({ 5,6 });
}

int main()
{
	auto vS = vector<Str1>();
	Foo(vS);

	cout << "Quantity:" << vS.size() << endl;
	for (auto it = vS.begin(); it != vS.end(); ++it)
		cout << " f1:" << (*it).f1 << " f2:" << (*it).f2 << endl;
}

Теперь унесем вектор и его определение из области видимости функции Foo. Cаму Foo() поместим в класс, оставив в его области видимости только определение Str1
Код: plaintext
1.
2.
3.
4.
5.
6.
struct Str1
{

	int f1;
	int f2;
};

(вектор как public переменная находится в другом классе не состоящем в родственных и никаких отношениях с классом где находится Foo())
И уже в функции определим вектор Foo(vector<Str1> vstr1). И & в представленном виде перестает работать.
...
Рейтинг: 0 / 0
Передача вектора в функцию.
    #39867655
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, все оч. грустно, все это работать не будет.
Код: plaintext
1.
2.
3.
Если вектор имеет определенный пользователем тип данных, то тип должен реализовать соответствующую конструкцию
 копирования, чтобы вектор мог быть модифицирован функцией, где он называется ссылкой, если функция обновляет вектор в 
результате push_back локальной переменной этого UDT...


Передача векторов в функцию, значение vs reference С++
...
Рейтинг: 0 / 0
Передача вектора в функцию.
    #39867659
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBAёёёёё, ваш код
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
class Str1
{
public:
	int f1;
	int f2;
};

void Foo(vector<Str1> &  vStr)
{
	vStr.push_back({ 1,2 });
	vStr.push_back({ 3,4 });
	vStr.push_back({ 5,6 });
}

int main()
{
	auto vS = vector<Str1>();
	Foo(vS);

	cout << "Quantity:" << vS.size() << endl;
	for (auto it = vS.begin(); it != vS.end(); ++it)
		cout << " f1:" << (*it).f1 << " f2:" << (*it).f2 << endl;
}

Теперь унесем вектор и его определение из области видимости функции Foo. Cаму Foo() поместим в класс, оставив в его области видимости только определение Str1
Код: plaintext
1.
2.
3.
4.
5.
6.
struct Str1
{

	int f1;
	int f2;
};

(вектор как public переменная находится в другом классе не состоящем в родственных и никаких отношениях с классом где находится Foo())
И уже в функции определим вектор Foo(vector<Str1> vstr1). И & в представленном виде перестает работать.
Только что так сделал - все работает отлично.
...
Рейтинг: 0 / 0
Передача вектора в функцию.
    #39867662
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёё, коли так, если не затруднит.
Пусть вектор будет, скажем:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
struct Str1
{
string s;
double a;
double b;
double c=0;
}

Заполняем массив vector<Str1> str; кроме str.с.
Далее функция ко всему массиву
Код: plaintext
1.
2.
3.
4.
5.
void Foo(vector<Str1> &str1)
{
int I = str1.size();
for(int i=0;i<I;i++) {str1[i].c = str1[i].a+str[i].b}
}

У меня подобная конструкция по ссылке не работает.
...
Рейтинг: 0 / 0
Передача вектора в функцию.
    #39867666
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBAУ меня подобная конструкция по ссылке не работает.
Так и пишет "sorry, this construct does not work" ? Подробнее надо ошибку описывать.

С виду код вполне рабочий, проверяй наполнение вектора, скорее всего там косяк.
...
Рейтинг: 0 / 0
Передача вектора в функцию.
    #39867714
Фотография AmKad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBA
Код: plaintext
1.
2.
int I = str1.size();
for(int i=0;i<I;i++) {str1[i].c = str1[i].a+str[i].b}


1) str или str1?
2) С++11 и выше:
Код: plaintext
1.
2.
for (auto& v : str1)
    v.c = v.a + v.b;
...
Рейтинг: 0 / 0
Передача вектора в функцию.
    #39867717
teo609
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ёёёёёYUBAёёёёё,Спасибо, но все равно ахинея.
Код: plaintext
1.
2.
3.
4.
5.
6.
3	1	2	2019-06-05 12:26:00	23161	23293	132	0	0	11320071475429242422962870476408253745900439793770910684839611498339765268014404936395415376878606539060841232866515822841269990571580063744.	3364531390168509570946593670063403957102172840568483435160286401658880.
4	1	2	2019-06-05 14:42:00	23259	23386	127	0	0	71061053206767231335290419438869451027886880981547709330927643776069469033442112144793532435628496288557050928584222306862363645562622526178436991952205423341655708171533962693422776433178535765826978447360.	8429771835985078174410628294459790600472833518789130913325974186583376241988234811867690212707893510144.
5	1	2	2019-06-06 14:05:00	23610	23695	85	0	0	446081395671004514473158387440660216381247281738051093173779195884108577903292074030635862547519043877453806698526205916499236939099560046252967061089684854267063142039623707857800559963585905183585530639629813775610929217784582291206231119092652704071193423346952478654464.	21120639092390279490016543401216637531519356108297928941445795843131668552525124734886251183756315214997031922628268362749203194371375104.
6	1	2	2019-06-06 14:09:00	23618	23703	85	0	0	inf.0	inf.0
7	1	2	2019-06-07 16:13:00	24147	24625	478	0	0	inf.0	inf.0
8	1	2	2019-06-10 10:00:00	24180	24619	439	0	0	inf.0	inf.0


Редактируются 2 последних столбца.

Функции были отлажены и работали в виде int Foo(), когда вектор был в области видимости и в функцию не передавался.
Код покажи. Весь.

Поддерживаю. Интересно уже посмотреть код.
Если ахинея - это длинная последовательность цифр, то возможно ошибка в функции вывода, например предполагается вывод строки %s, а в параметрах вместо строки объект, у которого нет преобразования в строку или оно не вызывается.
...
Рейтинг: 0 / 0
Передача вектора в функцию.
    #39867751
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBA,
Ждем твой код. У всех работает
21951094
...
Рейтинг: 0 / 0
Передача вектора в функцию.
    #39867754
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBA, считаю целесообразным изучить макет вашего кода на котором эта ошибка воспроизводится.
...
Рейтинг: 0 / 0
Передача вектора в функцию.
    #39867805
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBAёёёёё, коли так, если не затруднит.
Пусть ...
.
Пустая болтовня. Делаешь минимальное приложение, воспроизводящие 'проблему', и выкладываешь сюда.
Только рабочий код, без сказок.
...
Рейтинг: 0 / 0
Передача вектора в функцию.
    #39867895
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBAИмеется структура Str1. На ее основе делается вектор
Код: plaintext
1.
vector<Str1> vStr1;

и инициализируется - около 1000 значений.
Далее вектор передается в функцию типа int Foo(vector<Str1> vstr), которая должна изменить значения полей структур непосредственно самого вектора vStr1.
Всячески варианты с int Foo(vector<Str1> *vstr) и int Foo(vector<Str1> &vstr) пробовал, но они не идут. Ошибок компиляции-выполнения нет, но на выходе ахинея.)
Как, в итоге, передать вектор в функцию чтобы вектор можно было в ней редактировать?

"Есть многое на свете, друг Горацио, что и не сразу в голову придет."
М. Твен "Приключения Геккельбери Финна"[/color ]
Такие косяки случаются когда хранимый в контейнере тип не имплементирует необходимые для контейнеров операции по-правильному, скажем оператор копирования или конструктор копирования. Контейнеры это неявно используют, а дефолтная реализация от языка может накосячить с какими-нибудь указателями.
...
Рейтинг: 0 / 0
Передача вектора в функцию.
    #39868011
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну яТакие косяки случаются когда хранимый в контейнере тип не имплементирует необходимые для контейнеров операции по-правильному, скажем оператор копирования или конструктор копирования. Контейнеры это неявно используют, а дефолтная реализация от языка может накосячить с какими-нибудь указателями. Тоже склоняюсь к этому варианту. Тем более, что вопрос вполне описан в
YUBA
Код: plaintext
1.
2.
Если вектор имеет определенный пользователем тип данных, то тип должен реализовать соответствующую конструкцию
 копирования, чтобы вектор мог быть модифицирован функцией, где он называется ссылкой, ...


Передача векторов в функцию, значение vs reference С++ что и имеет место быть.
Думаю попробовать поместить вектор в класс и работать с вектором не непосредственно или по ссылке, а через функции класса имеющие доступ непосредственно к телу вектора.
...
Рейтинг: 0 / 0
Передача вектора в функцию.
    #39868129
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBAчто и имеет место быть.
Думаю попробовать поместить вектор в класс и работать с вектором не непосредственно или по ссылке, а через функции класса имеющие доступ непосредственно к телу вектора.а не проще исправить глючный класс в векторе?
...
Рейтинг: 0 / 0
Передача вектора в функцию.
    #39868145
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp, Как? Ошибок в коде нет. Исполнение в норме.
Foo() - работает штатно. Вектор в том-же классе.
Foo(vector<Str1> &vstr1) - полностью идентична, но находится в другом классе и работает со ссылкой на вектор. На выходе функции ахинея, вектор нормально не редактируется.
Мне почти очевидно, что дело не в самом коде, а в
Код: plaintext
1.
2.
Если вектор имеет определенный пользователем тип данных, то тип должен реализовать соответствующую конструкцию
 копирования, чтобы вектор мог быть модифицирован функцией, где он называется ссылкой, ...

Передача векторов в функцию, значение vs reference С++
...
Рейтинг: 0 / 0
Передача вектора в функцию.
    #39868150
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBAКак?тебе 10 раз сказали - дать тестовый пример.

YUBAМне почти очевидно, что дело не в самом коде, а ва в классе который написал ты?
...
Рейтинг: 0 / 0
Передача вектора в функцию.
    #39868151
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBA,
Там написано, что класс St1 должен быть с правильными или дефолтными конструкторами.
...
Рейтинг: 0 / 0
Передача вектора в функцию.
    #39868152
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Str1
...
Рейтинг: 0 / 0
Передача вектора в функцию.
    #39868154
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC SharpYUBA,
Там написано, что класс St1 должен быть с правильными или дефолтными конструкторами.Str1 - не класс а структура.
Теперь будет класс, включающий вектор, функции которого замещают методы вектора. Что-то типа -
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
class cVector_F12
{
private:
	vector<Fut_12> vFut_12;

public:
	cVector_F12();
	
	__declspec(property(get = get_dtime, put = put_dtime)) string dtime [];
	string get_dtime(int i);
	void put_dtime(int i, string dt);
  ....
	
...
Рейтинг: 0 / 0
Передача вектора в функцию.
    #39868159
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBAStr1 - не класс а структура.

Сугубо всё равно, технически разницы между ними нет.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Передача вектора в функцию.
    #39868162
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBAТеперь будет класс, включающий вектор, функции которого замещают методы вектора. Что-то типа -вы дадите исходный код с ошибкой или нет?
Что там вы планируете, это потом.
...
Рейтинг: 0 / 0
Передача вектора в функцию.
    #39868163
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBAзамещают методы векторагде написано, что при помещении в контейнер нужно что то замещать?
...
Рейтинг: 0 / 0
Передача вектора в функцию.
    #39868165
L.Otujktd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
YUBA,

Похоже на неициализированные переменные, желательно все-таки сделать явные конструкторы. С другой стороны хранить большой набор структур с большим типом примитивных полей неэффективно с точки зрения памяти. Проще тогда действительно сделать динамический массив
...
Рейтинг: 0 / 0
Передача вектора в функцию.
    #39868168
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L.OtujktdПохоже на неициализированные переменные, желательно все-таки сделать явные конструкторы.

А я ставлю на динамическую память, которая освобождается преждевременно.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Передача вектора в функцию.
    #39868170
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC SharpYUBAТеперь будет класс, включающий вектор, функции которого замещают методы вектора. Что-то типа -вы дадите исходный код с ошибкой или нет?
Что там вы планируете, это потом.
Ошибок нет, есть нештатное поведение.
Выуживать из большого проекта код не представляется возможным, а моделировать ошибку отдельно не представляется разумным. А принципы, когда возникает, и когда не возникает нештатное поведение программы уже описаны в теме.
Извините.
...
Рейтинг: 0 / 0
Передача вектора в функцию.
    #39868176
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC SharpYUBAзамещают методы векторагде написано, что при помещении в контейнер нужно что то замещать?Если работа со ссылками на вектор дает нештатное поведение программы, стало быть, надо избавится от работы со ссылками. Это возможно только при замещении функциональности вектора функциями класса, которые имеют непосредственный доступ к телу.)
...
Рейтинг: 0 / 0
Передача вектора в функцию.
    #39868180
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBAОшибок нет

Ты всерьёз полагаешь, что если на исходный код не ругается компилятор, то он правильный?
Или просто тупо троллишь?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Передача вектора в функцию.
    #39868185
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov, уж коли спросили, серьезно, в данном конкретном случае. Там просто негде ошибиться.))
Примерно аналогичный код функции см выше. Почти уверен, что дело в пользовательском типе в векторе.
...
Рейтинг: 0 / 0
Передача вектора в функцию.
    #39868188
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBAТам просто негде ошибиться.не иначе тебя в шарпе воспитывали.
Закрывай тему.
...
Рейтинг: 0 / 0
Передача вектора в функцию.
    #39868198
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBAЕсли работа со ссылками на вектор дает нештатное поведение программы, стало быть, надо избавится от работы со ссылками....
Чудовищный мрак.
...
Рейтинг: 0 / 0
Передача вектора в функцию.
    #39868236
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёёЧудовищный мрак. Главное не процесс, а результат.)
Все уже работает с вектором обернутым в класс.
Всем спасибо.
...
Рейтинг: 0 / 0
Передача вектора в функцию.
    #39868315
Фотография полудух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вектор так то сам класс
тема обёртки векторов не раскрыта
...
Рейтинг: 0 / 0
Передача вектора в функцию.
    #39868320
Фотография полудух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор11320071475429242422962870476408253745900439793770910684839611498339765268014404936395415376878606539060841232866515822841269990571580063744
таких интов вообще не бывает
тут склеенные инты из разных колонок
т.е. косяк в неправильном вызове printf(), например, или в неправильных данных для printf(), например

...вопросы без сырцов это гнусно, гадко, подло. Нельзя так издеваться над людьми!1
...
Рейтинг: 0 / 0
Передача вектора в функцию.
    #39868322
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
полудухвектор так то сам класс
тема обёртки векторов не раскрыта
+1

YUBAГлавное не процесс, а результат.)
-1
Остальное всем все понятно и неинтересно.
Делает костыль, ну и пусть делает.
Удачи ему.
...
Рейтинг: 0 / 0
Передача вектора в функцию.
    #39868423
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC SharpYUBAГлавное не процесс, а результат.)-1
Делает костыль, ну и пусть делает.
Удачи ему. Самое интересное, что я с вами согласен. Вектор в класс, ради получения данных самого вектора - идиотское решение с точки зрения программирования. Но я не занимаюсь программированием, я занимаюсь инженерными расчетами. И, с этой точки зрения, без разницы как получены результаты, хоть в столбик на бумажке.)
...
Рейтинг: 0 / 0
Передача вектора в функцию.
    #39868434
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBAНо я не занимаюсь программированиемтак бы и сказали раньше.
Если не программист, то делай любые костыли.
Удачи.
...
Рейтинг: 0 / 0
Передача вектора в функцию.
    #39868469
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBA, у вас еще есть вопросы по данной теме?
...
Рейтинг: 0 / 0
Передача вектора в функцию.
    #39868472
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBAPetroNotC Sharpпропущено...
где написано, что при помещении в контейнер нужно что то замещать?Если работа со ссылками на вектор дает нештатное поведение программы, стало быть, надо избавится от работы со ссылками. Это возможно только при замещении функциональности вектора функциями класса, которые имеют непосредственный доступ к телу.)
Есть шутка: "если программа выполняет мистические действия, то вы написали что-то невероятно глупое". Доля шутки тут очень маленькая.

С/С++ тяжелый язык, если не хочется вникать, то лучше взять что попроще: C# или Java, там неопытным стрелять в ногу запрещено, а по производительности они не особо проигрывают.
...
Рейтинг: 0 / 0
Передача вектора в функцию.
    #39868474
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Знакомые дата-аналитики используют язык R для всяких там статистических расчетов.

https://ru.wikipedia.org/wiki/R_(язык_программирования)

Советую автору туда заглянуть. Возможно есть коробочное решение его задач для которого кодинг на С или С++
не понадобиться. Это реально полезнее чем ловить грабли на языке системного программирования. Этот язык
не прощает ошибок новичков и богат побочными эффектами.

Есть известная цитата.

A C program is like a fast dance on a newly waxed dance floor by people carrying razors.

Waldi Ravens.
...
Рейтинг: 0 / 0
Передача вектора в функцию.
    #39868477
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBAВектор в класс, ради получения данных самого вектора - идиотское решение с точки зрения программирования. Но я не занимаюсь программированием, я занимаюсь инженерными расчетами. И, с этой точки зрения, без разницы как получены результаты, хоть в столбик на бумажке.)
Идиотское решение тут в том что идиот пишет лишь бы заработало без понимания как все устроено.
...
Рейтинг: 0 / 0
Передача вектора в функцию.
    #39868480
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima Tпопроще: C# или Javaремарка - java сложнее шарпа.
...
Рейтинг: 0 / 0
Передача вектора в функцию.
    #39868482
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Считаю топик безсмысленным. Автор не отвечает. Полный исходник не предоставил.
Но создал гуманитарный спор.

Ставлю на закрытие через сутки.
...
Рейтинг: 0 / 0
Передача вектора в функцию.
    #39868483
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC SharpDima Tпопроще: C# или Javaремарка - java сложнее шарпа.
Не надо из контекста выдергивать. Я сравнивал с С/С++
...
Рейтинг: 0 / 0
Передача вектора в функцию.
    #39868489
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,
Выдергивают это искажают.
Я ни в коей мере не искажал. Только уточнил.
...
Рейтинг: 0 / 0
Передача вектора в функцию.
    #39868496
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемые Знатоки. Вот примитивный код:
Код: plaintext
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.
#include "stdafx.h"
#include <vector>
#define _USE_MATH_DEFINES
#include <math.h>
#include "cF2Bat.h"

using namespace std;

cF2Bat::cF2Bat(double T)
{
	double Tr = T / (2.0)*M_PI );
	double a0 = 1.0 / (1.0 + Tr*Tr + sqrt(2.0)*Tr);
	double b1 = -a0*(2.0 * Tr*Tr + sqrt(2.0)*Tr);
	double b2 = a0*Tr*Tr;
}


int cF2Bat::Filter1(vector<Fut_12> &vfut_12)
{
	int I = vfut_12.size();
	double x;

	for (int i = 0; i < I; i++)
	{
		vfut_12[0].filter = Tr;
		vfut_12[1].filter = a0;
		vfut_12[2].filter = b1;
		vfut_12[3].filter = b2;
		double pi =M_PI;
		vfut_12[4].filter = pi;
	}
	return 0;
}


cF2Bat::~cF2Bat()
{
}

Вызов функции

Код: plaintext
1.
2.
F150 = new cF2Bat(150.0);
F150->Filter1(vFut_12);


Все компилируется и исполняется без ошибок.
На выходе имеем вот это.
Код: plaintext
1.
2.
3.
4.
5.
-6277438562204192487878988888393020692503707483087375482269988814848.
-6277438562204192487878988888393020692503707483087375482269988814848.
-6277438562204192487878988888393020692503707483087375482269988814848.
-6277438562204192487878988888393020692503707483087375482269988814848.
3.14159265358979

Вывод M_PI сделан специально для проверки. Его можно поставить в любую строку и он нормально выведется.
Как такое может быть? И откуда такое могло взяться?
Спасибо.)
...
Рейтинг: 0 / 0
Передача вектора в функцию.
    #39868499
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЗЫ в double Tr = T / (2.0)*M_PI ); скобка лишняя. Следует читать - double Tr = T / (2.0*M_PI );
...
Рейтинг: 0 / 0
Передача вектора в функцию.
    #39868504
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пардон, написал пост и сам увидел.))
...
Рейтинг: 0 / 0
Передача вектора в функцию.
    #39868514
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBAКак такое может быть? И откуда такое могло взяться?
Я проиграл. Это действительно неинициализированные переменные.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Передача вектора в функцию.
    #39868516
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBAПардон, написал пост и сам увидел.))у прогеров этот эффект все знают)
...
Рейтинг: 0 / 0
Передача вектора в функцию.
    #39868520
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp, Это результат долгого сидения в Python. ) Там так и делается, и объявляется и инициализируется в конструкторе.
...
Рейтинг: 0 / 0
Передача вектора в функцию.
    #39868522
Фотография полудух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBAУважаемые Знатоки. Вот примитивный код:
знатоки != телепаты
где листинг для Fut_12, cF2Bat
где printf(), который печатает "не то"
...
Рейтинг: 0 / 0
Передача вектора в функцию.
    #39868527
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
полудух, да ладно, в одном классе из дюжины ошибся.))
Да и нет там printf(), вывод идет в базу данных, и воще это DLL.
...
Рейтинг: 0 / 0
Передача вектора в функцию.
    #39868539
Фотография полудух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вы зачем всё это написали тут, когда вам говорят, что чтобы вам помочь нужен листинг
листинг , а не вода эта.
вывод в БД? ну так ГДЕ вывод в БД?
короче, mayton, закрывай.
...
Рейтинг: 0 / 0
Передача вектора в функцию.
    #39868545
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
полудух, вывод в БД вы можете легко посмотреть в другой моей теме.)) Код там есть.)
...
Рейтинг: 0 / 0
Передача вектора в функцию.
    #39868560
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBA,
Дак вопрос решен или нет, я не понял?
...
Рейтинг: 0 / 0
Передача вектора в функцию.
    #39868569
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поскольку листинг в другой теме я считаю целесообразным эту закрыть. Всем спасибо.
...
Рейтинг: 0 / 0
64 сообщений из 64, показаны все 3 страниц
Форумы / C++ [игнор отключен] [закрыт для гостей] / Передача вектора в функцию.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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