bugl
bugl
HomeLearnPatternsPathsSearchPremium
HomeLearnPatternsPaths
Learn/C++/C++ Tutorial
C++•C++ Tutorial

C++ Omit Array Size

Omit Array Size

In C++, you don't have to specify the size of the array. The compiler is smart enough to determine the size of the array based on the number of inserted values:

string cars[] = {"Volvo", "BMW", "Ford"}; // Three array elements

The example above is equal to

string cars[3] = {"Volvo", "BMW", "Ford"}; // Also three array elements

However, the last approach is considered as "good practice", because it will reduce the chance of errors in your program.

Omit Elements on Declaration

It is also possible to declare an array without specifying the elements on declaration, and add them later:

string cars[5];
cars[0] = "Volvo";
cars[1] = "BMW";
cars[2] = "Ford";
cars[3] = "Mazda";
cars[4] = "Tesla";

Note

The example above only works when you have specified the size of the array.

If you don't specify the array size, an error occurs:

string cars[];
// Array size is not specified cars[0] = "Volvo"; cars[1] = "BMW"; cars[2] = "Ford"; cars[3] = "Mazda"; cars[4] = "Tesla";
// error: array size missing in 'cars'

Fixed Size (Arrays) vs. Dynamic Size (Vectors)

You will often hear the terms "fixed size" and "dynamic size" when discussing arrays in C++.

This is because the size of an array in C++ is fixed, meaning you cannot add or remove elements after it is created.

// An array with 3 elements string cars[3] = {"Volvo", "BMW", "Ford"};
// Trying to add another element (a fourth element) to the cars array will result in an error cars[3] = "Tesla";

Vectors

For operations that require adding and removing array elements, C++ provides vectors , which are resizable arrays .

The size of a vector is dynamic, meaning it can grow and shrink as needed.

Vectors are found in the <vector> library, and they come with many useful functions to add, remove and modify elements:

// A vector with 3 elements vector<string> cars = {"Volvo", "BMW", "Ford"};
// Adding another element to the vector cars.push_back("Tesla");

This was just an introduction to vectors to let you know that "resizable arrays" exist.

Don't worry if you don't understand the syntax above.

You will learn much more about vectors and other data structures in a later chapter .

Previous

C++ Arrays and Loops

Next

C++ Array Size

This chapter

Overview
64

Lessons

138m

Read time

1. C++ Tutorial2. C++ Introduction3. C++ Getting Started4. C++ Syntax5. C++ Statements6. C++ Output (Print Text)7. C++ Output Numbers8. C++ New Lines9. C++ Comments10. C++ Variables11. C++ Declare Multiple Variables12. C++ Identifiers13. C++ Constants14. C++ User Input15. C++ Data Types16. C++ Numeric Data Types17. C++ Boolean Data Types18. C++ Character Data Types19. C++ String Data Types20. C++ auto21. C++ Operators22. C++ Arithmetic Operators23. C++ Assignment Operators24. C++ Comparison Operators25. C++ Logical Operators26. C++ Operator Precedence27. C++ Strings28. C++ String Concatenation29. C++ Numbers and Strings30. C++ String Length31. C++ Access Strings32. C++ Special Characters33. C++ User Input Strings34. C++ String Namespace35. C++ C-Style Strings36. C++ Math37. C++ Booleans38. C++ Boolean Expressions39. C++ If ... Else40. C++ Else41. C++ Else If42. C++ Short Hand If Else43. C++ Nested If44. C++ Logical Operators in Conditions45. C++ Switch46. C++ While Loop47. C++ Do/While Loop48. C++ For Loop49. C++ Nested Loops50. C++ The foreach Loop51. C++ Break and Continue52. C++ Arrays53. C++ Arrays and Loops54. C++ Omit Array Size55. C++ Array Size56. C++ Multi-Dimensional Arrays57. C++ Structures (struct)58. C++ Enumeration (enum)59. C++ Memory Address60. C++ Pointers61. C++ Dereference62. C++ Modify Pointers63. C++ Memory Management64. C++ new and delete

On this page

Omit Array SizeOmit Elements on DeclarationFixed Size (Arrays) vs. Dynamic Size (Vectors)Vectors