Witam. Uczę się języka C++ z książki Pana Bjarne Stroustrup. Wykonałem już parędziesiąt zadań ale tego nie mogę przeskoczyć. Mam napisać program konsolowy znajdujący liczby pierwsze metodą sita Eratostenesa. Używam do tego funkcji vector. Aby wyeliminować pewne wartości w konkretnych komórkach chciałbym zastosować polecenie vector.erase(nazwa_komórki); , jednak kompilator cały czas podświetla mi kropkę miedzy vector a erase a informacja o błędzie jest dla mnie ciężka do odszyfrowania. Używam Microsoft Visual Studio bo taki kompilator zalecił autor książki. Poniżej wklejam kod. Może on zawierać jeszcze jakieś inne błędy bo nie mogłem go przetestować z powodu tego problemu. Pozdrawiam i proszę o wsparcie lub wskazówki.
#include<iostream>
#include<iomanip>
#include<fstream>
#include<sstream>
#include<cmath>
#include<cstdlib>
#include<string>
#include<list>
#include <forward_list>
#include<vector>
#include<unordered_map>
#include<algorithm>
#include <array>
#include <regex>
#include<random>
#include<stdexcept>
int main()
{
using namespace std;
system("chcp 1250");
int k = 2;
int l = 3;
int m = 5;
cout << "Witaj w sicie Erastotenesa\n";
vector<int> pula;
for (int i = 0; i < 100; i++) {
pula.push_back(i);
}
for (int j = 0; j < 100; j++) {
pula.erase(k);
k += k;
pula.erase(l);
l += l;
pula.erase(m);
m += m;
}
for (int n = 0; n < 100; n++) {
cout << pula[n] << "\n";
}
}
Treść błędu :
Kod Ważność Opis Projekt Plik Wiersz Stan pominięcia
C2664 Błąd „std::_Vector_iterator<std::_Vector_val<std::_Simple_types<_Ty>>> std::vector<_Ty,std::allocator<_Ty>>::erase(std::_Vector_const_iterator<std::_Vector_val<std::_Simple_types<_Ty>>>,std::_Vector_const_iterator<std::_Vector_val<std::_Simple_types<_Ty>>>) noexcept(<expr>)”: nie można dokonać konwersji argumentu 1 z „int” do „std::_Vector_const_iterator<std::_Vector_val<std::_Simple_types<_Ty>>>” ConsoleApplication10 C:\Users\AlexPraca\source\repos\ConsoleApplication10\ConsoleApplication10\ConsoleApplication10.cpp 35
Kod Ważność Opis Projekt Plik Wiersz Stan pominięcia
E0304 Błąd (aktywny) żadne wystąpienie elementu funkcja przeciążona "std::vector<_Ty, _Alloc>::erase [gdzie _Ty=int, _Alloc=std::allocator<int>]" nie jest zgodne z listą argumentów ConsoleApplication10 C:\Users\AlexPraca\source\repos\ConsoleApplication10\ConsoleApplication10\ConsoleApplication10.cpp 42