bugl
bugl
HomeLearnPatternsPathsSearch
HomeLearnPatternsPathsSearch

Loading lesson path

Learn/C++/C++ Tutorial
C++•C++ Tutorial

C++ Omit Array Size

Flash cards

Review the key moves

1/4
Core idea

What is the main idea behind C++ Omit Array Size?

Lesson checks

Practice each idea before moving on

Short Mimo-style checks built from this lesson's code, terms, and sequence.

1Quick choice

Which statement best captures the main point of this lesson?

2Fill blank

Complete the missing token from the example code.

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

Put the learning moves in the order that makes the concept easiest to apply.

In C++, you don't have to specify the size of the array.
Fixed Size (Arrays) vs. Dynamic Size (Vectors)
Omit Elements on Declaration

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