Portál AbcLinuxu, 28. října 2025 11:15
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.