Onko olemassa keino selvittää, kuinka monta arvoa joukossa on? Myös sen havaitseminen, olenko päässyt matriisin loppuun vai en, toimisi.
Jos tarkoitat C-tyylistä arraya, voit tehdä jotain seuraavanlaista:
int a[7];
std::cout << "Length of array = " << (sizeof(a)/sizeof(*a)) << std::endl;
Tämä ei kuitenkaan toimi osoittimilla, eli se ei toimi kummallekaan seuraavista:
int *p = new int[7];
std::cout << "Length of array = " << (sizeof(p)/sizeof(*p)) << std::endl;
tai:
void func(int *p)
{
std::cout << "Length of array = " << (sizeof(p)/sizeof(*p)) << std::endl;
}
int a[7];
func(a);
C++:ssa, jos haluat tällaista käyttäytymistä, sinun pitäisi käyttää konttiluokkaa; luultavasti std::vector
.
Onko olemassa keino selvittää, kuinka monta arvoa joukossa on?
Kyllä!
Kokeile sizeof(array)/sizeof(array[0])
.
Myös sen havaitseminen, olenko saavuttanut joukon lopun vai en, toimisi.
En näe tähän mitään keinoa, ellei array ole merkkijono (eli merkkijono).
P.S : C++:ssa käytetään aina std::vector
. Siinä on useita sisäänrakennettuja funktioita ja laajennettu toiminnallisuus.