Jak stworzyć tablicę liczb o nieznanym rozmiarze?

0

Chodzi o to, że muszę stworzyć tablicę liczb, którego rozmiaru nie znam, i nie chodzi mi sytuację, w którym program wprost zapyta się użytkownikowi na starcie ile elementów chce wprowadzić, on ma wpisywać liczby i gdy mu się odechce, program ma przechodzić do następnych partii kodu tzn. mają się wyświetlać liczby pierwsze.

1

no to użyj std::vector

0

może vector?

0

vector albo list, to zależy co chcesz z tym potem robić

0

nie mam pojęcia jak dodać elementy do tego wektora można tak, ale i tak użytkownik będzie musiał się zadeklarować ile elementów chce dodać;/

vector<int> tab;
cin >> n;
for( int i=0; i<n; ++i )
{
   int element;
   cin >> element;
   tab.push_back(element);
}
0

@helpme, po utworzeniu sita Eratostenesa, pozostawiając liczby w sicie masz koszt sprawdzenia czy to pierwsza równy O(1) 'if(sito[X])`.
Po przepisaniu do tablicy masz koszt sprawdzenia O(P) gdzie P-rozmiar tablicy.
UWAGA - pytanie, po kiego grzyba chcesz pogorszyć swój algorytm?

0

@_13th_Dragon Nie dowidzisz ->

nie mam pojęcia jak dodać elementy do tego wektora można tak, ale i tak użytkownik będzie musiał się zadeklarować ile elementów chce dodać;/

vector<int> tab;
cin >> n;
for( int i=0; i<n; ++i )
{
   int element;
   cin >> element;
   tab.push_back(element);
}

co z tego, że dostałem odpowiedzi jak problem nie rozwiązany?

0
helpme napisał(a):

ale i tak użytkownik będzie musiał się zadeklarować ile elementów chce dodać;/

To przerób to na:
vector<int> tab;
while(JAKIS_WARUNEK_ZAKOŃCZENIA) tab.push_back(JAKAS_KOLEJNA_WARTOSC);

0

@helpme ale czy czasem nie jest tak że chcesz po prostu sprawdzać pierwszość wprowadzonych liczb? To sprawdzaj zaraz po wczytaniu liczby. Nie potrzebujesz ich nigdzie składować...

0

liczb

std::valarray

spamuje cały czas, bo zakochał się w swoim kodzie, który stworzył, nie patrzy na tytuł tematu i pytanie, które zadaje, a wy na to pozwalacie... Dowiem się w końcu czy da się w ogóle się wypełnić tą tablicę tak jak ja chce?

Jesteś bezczelny. Proszę bardzo, kod dla Ciebie.

#include <iostream>
#include <iterator>
#include <algorithm>
#include <vector>
using namespace std;
auto main()->int{ 
    vector<int> v;
    copy(istream_iterator<int>(cin), istream_iterator<int>(), v.begin());
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1