Potrzebuję dynamicznej tablicy

Potrzebuję dynamicznej tablicy
Trad d
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 19
0

Dobry wieczór,
ma ktoś może fajny sposób na stworzenie czegoś w rodzaju struktury dynamicznej
powiedzmy w strukturze mam zmienną

Kopiuj
char nazwa[ROZMIAR]; 

w moim programie chce zapytać użytkownika ile pól chce wprowadzić, po czym właśnie tyle pól wprowadzam do struktury

pasasap
  • Rejestracja: dni
  • Ostatnio: dni
_13th_Dragon
  • Rejestracja: dni
  • Ostatnio: dni
3

std::string ?
Z opisu jednak wydaje mi się że chcesz mieć strukturę o dynamicznej liczbie pól?
Wtedy std::map<string,string>

IR
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 25
1

Mnie osobiście bardzo odpowiadają wektory. Poniżej taki oto "na poczekaniu" zrobiony program, demonstrujący możliwe działania na wektorach. Tu akurat użyłem typu int, ale oczywiście równie dobrze można zastosować char. Na początku programu użytkownik wpisuje jedynie rozmiar wektora, a na końcu jest opcja z samodzielnym wpisywaniem elementów do wektora o wybranym rozmiarze.

Kopiuj
#include <iostream>
#include <vector>//NIEZBEDNA BIBLIOTEKA
#include <time.h>
#include <windows.h>


int rozmiar,elementow1,elementow2,wartosc,numer;

using namespace std;

int main()
{

    ////////////////////DEKLARACJA WEKTOROW//////////////////////
//PIERWSZE W NAWIASIE-LICZBA ELEMENTOW W WEKTORZE, DRUGIE W NAWIASIE-ZAWARTOSC KOMORKI WEKTORA

    vector <int> vec1(elementow1,wartosc);
    vector <int> vec2(elementow2,wartosc);

    ////////////////////PRZYKLADOWE OPERACJE//////////////////////
    //TWORZENIE WEKTORA O DANEJ DLUGOSCI:

    cout<<"Podaj rozmiar wektora 1: ";
    cin>>rozmiar;

    srand(time(NULL));

    for(int i=0;i<rozmiar;i++)
    {
        wartosc=rand()%10;//LOSOWANIE WARTOSCI OD 0-1 DO KOMOREK WEKTORA
        vec1.push_back(wartosc);//FUNKCJA DODAWANIA NOWEJ WARTOSCI NA KONCU WEKTORA
    }

    cout<<endl<<endl<<"Oto rozmiar wektora 1: "<<vec1.size()<<endl<<endl;//FUNKCJA PODAWANIA ROZMIARU WEKTORA

    cout<<"Oto elementy wektora 1: ";
    for(int i=0;i<vec1.size();i++)
    {
        cout<<vec1.at(i)<<",";//FUNKCJA POKAZYWANIA WARTOSCI W WYBRANEJ KOMORCE WECTORA
    }

    cout<<endl<<endl<<"Podaj numer komorki wectora (od 0 do "<<vec1.size()<<"), ktorej wartosc chcesz poznac: ";
    cin>>numer;
    cout<<endl<<endl<<"Wybrana komórka ma wartosc: "<<vec1.at(numer)<<endl<<endl;

    cout<<"Pierwsza komorka wektora 1 ma wartosc: "<<vec1.front()<<endl<<endl;//WYSWIETLANIE ZAWARTOSCI PIERWSZEJ KOMORKI

    cout<<"Ostatnia komorka wektora 1 ma wartosc: "<<vec1.back()<<endl<<endl;//WYSWIETLANIE ZAWARTOSCI OSTATNIEJ KOMORKI

    ////////////////////ODCINANIE OSTATNIEJ KOMORKI WEKTORA//////////////////////////
    vec1.pop_back();

    cout<<"Po usunieciu ostatniego elementu wektora 1 jego rozmiat to: "<<vec1.size()<<endl<<endl;

    //////////////////TWORZENIE ODWROCONEJ WERSJI WECTORA 1 W WECTORZE 2////////////////////////////

   cout<<"Wector 1 sklada sie w tej chwili z nastepujacych elementow: ";

   for(int i=0;i<vec1.size();i++)
   {
       cout<<vec1.at(i)<<",";
   }


   while(vec1.empty()==0)//DOPOKI NIEPRAWDA JEST, ZE WEKTOR 1 JEST PUSTY
   {
       wartosc=vec1.back();
       vec2.push_back(wartosc);
       vec1.pop_back();
   }

   cout<<endl<<endl<<"Po przeniesieniu elementow wectora 1 do wectora 2,";
   cout<<" otrzymojemy taka ich odwrocona sekwencje: ";

   for(int i=0;i<vec2.size();i++)
   {
       cout<<vec2.at(i)<<",";
   }

   cout<<endl<<endl;

   vec2.clear();//CZYSZCZENIE WEKTORA Z WSZYSTKICH ELEMENTOW

   cout<<"Po usunieciu wszystkich elementow, rozmiar wektora 2 wynosi: "<<vec2.size()<<endl;

   cout<<endl<<"Wpisz ile elementow chcesz osobiscie wpisac do wektora 2: ";
   cin>>rozmiar;

   for(int i=0;i<rozmiar;i++)
   {
       cout<<"Wpisz "<<i+1<<" wartosc: ";
       cin>>wartosc;
       vec2.push_back(wartosc);
   }

   cout<<endl<<endl<<"Wpisane wartosci to: ";

   for(int i=0;i<vec2.size();i++)
   {
       cout<<vec2.at(i)<<",";
   }
   cout<<endl<<endl;

}

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.