[C++] Tablica Dynamiczna
Ostatnio zmodyfikowano 2014-12-04 15:28
Vixos Temat założony przez niniejszego użytkownika |
[C++] Tablica Dynamiczna » 2014-12-02 11:39:59 Jak zrobić taką tablice dynamiczną? Jakoś nie mogę tego rozgryźć. W pierwszej linii znajduje się jedna liczba N oznaczająca liczbę wierszy tablicy. ( 1 ≤ N ≤231-2). Następne linie zawierają opisy kolejnych wierszy tablicy. Opis każdej linii mieści się w dwóch liniach: pierwsza zawiera pojedynczą liczbę M oznaczającą liczbę liter w wierszu, a druga zawiera opis elementów tego wiersza w postaci n1 c1 ... nk ck gdzie ni oznacza ilość wystąpień litery c1. Zakładamy, że 1 ≤ ni ≤231-2 dla każdego i. Zawsze spełniona jest zależność M = n1 + ... + nk Przykład: 8 2 a 2 b 1 x 3 a opisuje wiersz tablicy postaci a a b b x a a a W programie zabronione jest używanie nawiasów kwadratowych: [, ] (oraz równoważnych im sekwencji <:, :>), operatora new oraz klasy string i pojemników z biblioteki standardowej. Zabronione jest także wykorzystanie plików nagłówkowych innych niż cstdlib i iostream. Tyle udało mi się zrobić na razie. #include <iostream> #include <cstdlib>
using namespace std;
int N, M, c; char ** tab;
int main() { cin >> N; tab =( char ** ) malloc( sizeof( N ) ); for( int k = 0; k < N; k++ ) { cin >> M; *( tab + k ) =( char * ) malloc( sizeof( M + M ) ); } for( int k = 0; k < N; k++ ) { for( int l = 0; l < M; l++ ) { cin >>*( *( tab + k ) + l ); } } for( int k = 0; k < N; k++ ) { for( int l = 0; l < M; l++ ) { cout <<*( *( tab + k ) + l ) << " "; } cout << endl; } } |
|
kubawal |
» 2014-12-02 17:08:02 podejrzewam, że skoro nie można uzywać new to malloc() raczej też. W takim przypadku polecam użycie puli (jeśli obiekty mają stały rozmiar, a w tym przypadku tak: template < class T, int N >
class Pool { T[ N ]; public: T * alloc(); void free( T * ); } Pool < char,( 231 - 2 ) *( 231 - 2 ) > myspace;
Z implementacją nie powinno być problemów. |
|
Vixos Temat założony przez niniejszego użytkownika |
» 2014-12-04 14:30:15 Bardziej mi chodzi o to jak zrobić byle jaką tablice nawet kwadratowa, ale aby spełniało warunki zadania. Bo nie wiem jak to zrobić że jak mu podaje wartość, a potem wczytuje dane to będzie to tak długo robił aż suma danych z intów będzie równa wcześniej podanej wartości, a potem wypisze tablice z danymi, które były podawane, a takiej samej formie. |
|
Monika90 |
» 2014-12-04 15:00:05 Po co Ci tablica? Jeżeli masz wypisać wiersze tablicy w takiej samej kolejności w jakiej pojawiają się na wejściu, to po prostu wypisuj je na bieżąco. Czy przez rozumiesz 1 ≤ N ≤ 2 31-2? |
|
Vixos Temat założony przez niniejszego użytkownika |
» 2014-12-04 15:28:05 Tak Tablica jest po to abym mógł później wykonywać na niej operacje, a mnie chodzi o to żeby w ogóle uzyskać taką tablice. |
|
« 1 » |