Portál AbcLinuxu, 13. července 2025 02:53
string *promena = new string[count];
no a potreboval bych nejak zařídit aby se mi vytvořené pole zvětšilo o jedna takže bude mít velikost count + 1, jde mi o to že mám dvě taková pole a jedno má velikost count a druhé count + 1, a já potřebuju aby se do toho jednoho(menčího) načetlo to první.
vector<string>
ze standardní knihovny. Ten udělá práci za tebe.
...
string *tmp;
tmp = new string[count + 1];
if(count > 0)
{
for(int k = 0; k < count; k++)
{
tmp[k] = retezec[k];
}
delete [] retezec;
}
tmp[count] = item;
retezec = tmp;
//struktura[count] = item;
count+=1;
...
std::vector
(nebo jiný kontejner podle toho, jaké to má mít vlastnosti).
std::vector<TYPE> vec; TYPE item; vec.push_back(item);
Nemate zac.
Kdybyste radsi poradne napsal co chcete delat, abychom se konecne dozvedeli proc nemuzete pouzit vector. A pripadne vam poradili neco jineho.
#include <string> //std::string #include <vector> //std::vector #include <algorithm> //std::copy #include <iostream> //std::cout #include <iterator> //std::ostream_iterator int main(int argc, const char* argv[]) { // nakopiruje pole do std::vector std::vector<std::string> vektor(argv, argv + argc); //vytiskne kazdy retezec a oddeli koncem radku std::copy( vektor.begin(), vektor.end(), std::ostream_iterator<std::string>(std::cout,"\n") ); }
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.