Можете пояснить почему не работает push_back()
?
На входе есть лист с числами, и мы должны создать динамический вектор от кол-ва простых чисел в листе, а потом записать их в вектор.
Выводит 0 0 0 0
, а должен 2 3 5 7
. В чем проблема?
#include <iostream>
#include <vector>
#include <list>
#include <cmath>
using namespace std;
bool prostoNumer(int n) {
if (n == 1) return false;
for (int i = 2; i <= sqrt(n); i++)
if (n % i == 0)return false;
return true;
}
int shetchik(list<int> lst) {
try {
int count = 0;
for (int n : lst) {
if (prostoNumer(n) == true) {
count++;
}
}
if (count > 0) return count;
else throw 123;
}
catch (int i) {
if (i == 123) cout << "No" << endl;
}
}
void add(vector<int> vec, list<int> lst) {
for (int n : lst) {
if (prostoNumer(n) == true) {
vec.push_back(n);
}
}
}
void print(vector<int> vec) {
for (int i = 0; i < vec.size(); i++) {
cout << vec.back() << endl;
vec.pop_back();
}
}
int main() {
list<int> lst = {1, 2, 3, 77, 54, 7, 14, 5, 96};
vector<int> vect;
vect.reserve((shetchik(lst)));
add(vect, lst);
print(vect);
system("pause>nul");
return 0;
}
Ваш push_back
прекрасно работает. Но вы передаете контейнеры в функции по значению. Все ваши изменения применяются к локальной копии контейнера и теряются вместе с этой копией по завершении функции.
Прекратите передавать тяжелые объекты по значению без явной на то необходимости.
Каким образом вам удалось получить вывод 0 0 0 0
- не ясно. Ваш контейнер имеет размер 0 и ничего подобного функция print
выводить не будет
Виртуальный выделенный сервер (VDS) становится отличным выбором
Задача сделать так, чтобы программа работала в двух потокахНужно искусственно усыплять поток, дабы эмулировать долгие вычисления
Хочу записать в com-порт и прочитать из него некоторое количество байтС записью проблем вроде бы нет, write ошибок не возвращает
Только недавно начал изучать Java и решил сделать простенькую игру по угадыванию буквы, но столкнулся с небольшой проблемой, подскажите, в чём...
У меня есть Spring MVC приложение, когда я заменяю @GetMapping("/addPhoto") на RequestMapping(name = "/addPhoto",method = RequestMethodGET) у мене просто не стратует программа