Bir dizinin kaç değeri olduğunu bulmanın bir yolu var mı? Bir dizinin sonuna ulaşıp ulaşmadığımı tespit etmek de işe yarayacaktır.
C tarzı bir diziyi kastediyorsanız, şöyle bir şey yapabilirsiniz:
int a[7];
std::cout << "Length of array = " << (sizeof(a)/sizeof(*a)) << std::endl;
Ancak bu, işaretçiler üzerinde çalışmaz, yani aşağıdakilerden herhangi biri için çalışmaz:
int *p = new int[7];
std::cout << "Length of array = " << (sizeof(p)/sizeof(*p)) << std::endl;
ya da:
void func(int *p)
{
std::cout << "Length of array = " << (sizeof(p)/sizeof(*p)) << std::endl;
}
int a[7];
func(a);
C++'da, bu tür bir davranış istiyorsanız, bir konteyner sınıfı kullanmalısınız; muhtemelen std::vector
.
Bir dizinin kaç değeri olduğunu bulmanın bir yolu var mı?
Evet!
try sizeof(array)/sizeof(array[0])
Bir dizinin sonuna ulaşıp ulaşmadığımı tespit etmek de işe yarayacaktır.
Diziniz bir karakter dizisi (yani string) olmadığı sürece bunun için herhangi bir yol göremiyorum.
P.S: C++'da her zaman std::vector
kullanın. Birkaç dahili işlev ve genişletilmiş bir işlevsellik vardır.