-2

I have :

string a[] = {"akdhska","asjd","askjdh"};

Is there any way to get the number of elements in this array?

As a resolution of this I am doing the following:

vector<string> a;
a.insert(a.end(),"test1"); // or a.push_back("test1")
a.insert(a.end(),"test");
a.insert(a.end(),"test12");
a.insert(a.end(),"test123");
int len = a.size();
Bhumi Singhal
  • 8,063
  • 10
  • 50
  • 76

3 Answers3

6

A C++11 solution would be

std::size_t length = std::end(a) - std::begin(a);

or

std::size_t length = std::distance(std::begin(a), std::end(a));
lisyarus
  • 15,025
  • 3
  • 43
  • 68
1

You can probably use :

int length = sizeof(a)/sizeof(*a);
ig-melnyk
  • 2,769
  • 2
  • 25
  • 35
1
string a[] = {"akdhska", "asjd", "askjdh"};
int len = sizeof(a) / sizeof(*a); // gives you number of elements
Andreas DM
  • 10,685
  • 6
  • 35
  • 62
  • best for compile-time known tables, 0 CPU use (at place when is born) BUT NOT when table is passed as argument – Jacek Cz Sep 20 '15 at 09:44