Problém s dynamickou alokáciou poľa – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Problém s dynamickou alokáciou poľa – C / C++ – Fórum – Programujte.comProblém s dynamickou alokáciou poľa – C / C++ – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
28. 9. 2013   #1
-
0
-

Ahojte, potreboval by som opäť pomoc s programom :)

 Ako mám vyriešiť problém s dynamickou alokáciou pamäte ? Pole by malo zvládať hodnoty väčšie ako 11 číslic (napr. 76936815625)

#include <iostream>
#include <algorithm>

int a,b;

using namespace std;
int main(void)
{
	cin >> b;
	int* array = new int[b];
	
	sort(begin(array), end(array));	
	do{
		for(int i : array)
			{
                           cout << i;	
				      }
		}
		cout << '\n';
	}while(next_permutation(begin(array), end(array)));	
	
	return 0;
}
Nahlásit jako SPAM
IP: 178.143.169.–
Reklama
Reklama
KIIV+42
God of flame
28. 9. 2013   #2
-
0
-

nj to je tak, kdyz se pouziva kod, kteremu vubec nerozumis...

puvodne tam bylo staticke pole... z nej se begin() a end() asi udelat da tak jak je to tam pouzite...

nicmene dynamicke pole to je ponekud jine... ten template tak trosku netusi, jakou ze to pole ma vlastne delku....

+ si do toho pole nic nenacetl

Nahlásit jako SPAM
IP: 94.112.35.–
Program vždy dělá to co naprogramujete, ne to co chcete...
KIIV+42
God of flame
28. 9. 2013   #3
-
0
-

jedno z moznych reseni ktere mozna nepochopis: 

#include <iostream>
#include <algorithm>
#include <vector>
#include <iterator>

using namespace std;
int main(void)
{
  istream_iterator<int> int_in(cin); // nebudeme se parat s cin >> ...

  vector<int> data(*int_in); // v iteratoru uz hodnota je... 
  for (int & item : data) {
    item = *(++int_in); // ted chceme nacist dalsi v poradi - proto preinkrementace
  }

  sort(data.begin(), data.end()); // seradit

  // od nejnizsiho po nejvyssi
  do {
    copy(data.begin(), data.end(), ostream_iterator<int>(cout));
    cout << endl;
  } while(next_permutation(data.begin(), data.end()));

/*
  // od nejvyssiho po nejnizsi
  vector<int> permutace; // pripravit si policko na permutace
  do {
    int out=0;
    for (auto x : data) { out = out*10 + x; } // prevedeme na cislo
    permutace.push_back(out); // ulozime do pole
  } while(next_permutation(data.begin(), data.end()));

  sort(permutace.rbegin(), permutace.rend());
  copy(permutace.begin(), permutace.end(), ostream_iterator<int>(cout,"\n"));
*/
  return 0;
}
Nahlásit jako SPAM
IP: 94.112.35.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 106 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý