Определить количество целых чисел в векторе, которое соответствует определенному значению.
// Программа CPP для подсчета векторных элементов, которые
// соответствует заданному целевому значению.
#include
#include
#include
using namespace std;
int res = count(v.begin(), v.end(), target);
cout «Target: » » Count : «
Как посчитать элементы, соответствующие условию?
Мы можем использовать лямбда-выражения в C ++ для достижения этой цели.
// лямбда-выражение для подсчета элементов
// делится на 3.
#include
#include
#include
C ++ найти фактическое количество элементов в векторе
Итак, у меня есть что-то вроде этого, я инициализирую вектор с объемом памяти 10. Однако, когда я запустлю свою программу, у меня будет только 2 элемента для работы, и это будет увеличиваться позже без фиксированной скорости.
Вернется 10, что затрудняет мне цикл. Есть ли способ узнать фактическое количество элементов внутри вектора?
Решение
Количество элементов после resize(10) является 10. Вы не хотите использовать resize если вам нужно только два элемента и емкость 10. Вместо этого вы хотите:
Ты можешь использовать size() запросить текущее количество элементов, и capacity() для максимального размера вы можете иметь без перераспределения.
Другие решения
«вектор с емкостью 10»
Это то что reserve для:
что гарантирует, что внутреннее хранилище вектора будет достаточно большим, чтобы вместить 10 элементов без дополнительного перераспределения.
resize с другой стороны, гарантирует, что вектор содержит 10 элементов. Он вставляет пустые элементы при необходимости — что также является причиной, почему size() возврат звонка 10 ,
Подсчитайте размер вектора в C ++
Динамический массив можно создать с помощью вектора в C ++. Один или несколько элементов могут быть вставлены в вектор или удалены из него во время выполнения, что увеличивает или уменьшает размер вектора. Размер или длину вектора можно подсчитать с помощью любого цикла или встроенной функции с именем size (). Эти способы подсчета размера вектора были объяснены в этом руководстве на различных примерах.
Предварительные условия
Прежде чем проверять примеры этого руководства, вы должны проверить, установлен ли компилятор g ++ в системе. Если вы используете Visual Studio Code, установите необходимые расширения для компиляции исходного кода C ++ и создания исполняемого кода. Здесь приложение Visual Studio Code было использовано для компиляции и выполнения кода C ++.
Пример 1: Подсчитайте размер вектора с помощью цикла
Создайте файл C ++ со следующим кодом для подсчета размера вектора без использования какой-либо встроенной функции. В коде объявлен вектор строковых значений. Здесь была объявлена определяемая пользователем функция с именем calculate_size () для вычисления размера вектора с помощью цикла. Эта функция принимает вектор в качестве значения аргумента и возвращает размер вектора вызывающей стороне. Эта функция вызывается впервые после объявления вектора. Затем в конце вектора были добавлены два значения, которые увеличивают размер вектора. Функция calculate_size () вызвала второй раз, чтобы подсчитать размер измененного вектора.
//Declate function to calculate the size of the vector
intcalculate_size ( vectorstrVec )
<
//Initialize a string variable
int length = ;
/*
Iterate the content of the loop
and increment the value of the length variable in each iteration
to count the size of the vector
*/
for ( string element : strVec )
length ++;
//Return the size value
return length ;
>
//Declare a vector of string data
vector items = ;
//Print the current size of the vector
cout «The size of the vector is : « calculate_size ( items ) endl ;
//Add two new items using push_back() function
items. push_back ( «Color Paper» ) ;
items. push_back ( «Water color» ) ;
//Print the current size of the vector after addition
cout «The size of the vector after addition is : « calculate_size ( items ) endl ;
>
Следующий вывод появится после выполнения вышеуказанного кода. На момент объявления в векторе было 4 элемента. Таким образом, выходные данные показывают, что размер вектора равен 4 до вставки новых значений, а размер равен 6 после вставки 2 значений.
Пример 2: Подсчитайте размер вектора с помощью size ()
В C ++ существует встроенная функция для подсчета размера вектора. Имя функции — size (). Он возвращает размер или общее количество элементов вектора, в котором он используется. Это не требует никаких аргументов.
В следующем примере показано использование функции size () для подсчета общего количества элементов вектора. Создайте файл C ++ со следующим кодом для тестирования кода. В коде объявлен вектор целых чисел. На момент объявления вектор содержит 8 элементов. Функция size () была использована в первый раз для подсчета общего количества элементов вектора и печати значения счетчика. Функция size () использовалась второй раз для подсчета общего количества элементов после добавления четырех элементов в конце вектора.
usingnamespace std ;
intmain ( )
<
//Declare a vector of integer data
vectorintVector ;
//Print the size of the vector
cout «The size of the vector is : « intVector. size ( ) endl ;
//Add some values to the vector using push_back() function
intVector. push_back ( 65 ) ;
intVector. push_back ( 90 ) ;
intVector. push_back ( 49 ) ;
intVector. push_back ( 16 ) ;
//Print the size of the vector after addition
cout «The size of the vector after addition is : « intVector. size ( ) endl ;
return0 ;
>
Следующий вывод появится после выполнения вышеуказанного кода. На момент объявления в векторе было 8 элементов. Итак, выходные данные показывают, что размер вектора равен 8 до вставки новых значений, а размер равен 12 после вставки 4 значений.
Пример 3: Подсчитайте размер вектора, чтобы вставить четные числа
В следующем примере показано, как вставить в вектор 10 четных чисел после определения размера вектора. Создайте файл C ++ со следующим кодом для тестирования кода. Вектор целочисленного типа с 10 объявлен в начале кода. Была объявлена целочисленная переменная для вставки в вектор 10 четных чисел от 0 до 18. Здесь цикл for был использован для итерации вектора на основе возвращенного значения функции size () и вставки элемента в вектор. Затем выходные данные функции size () использовались для печати значений вектора.
using namespace std ;
//Declare a vector of 10 elements
std :: vector int > myArray ( 10 ) ;
//Initialize an integer variable
//Insert even numbers into the vector using size()
for ( int i = ; i myArray. size ( ) ; i ++ )
myArray [ i ] = value ;
value = value + 2 ;
//Print the values of the vector using size()
for ( int j = ; j myArray. size ( ) ; j ++ )
cout myArray [ j ] » « ;
strongusingnamespace std ;
intmain ( )
<
//Declare a vector of 10 elements
std :: vectormyArray ( 10 ) ;
//Initialize an integer variable
int value = ;
//Insert even numbers into the vector using size()
for ( inti = ; i myArray. size ( ) ; i ++ )
<
myArray [ i ] = value ;
value = value + 2 ;
>
//Print the values of the vector using size()
for ( int j = ; j myArray. size ( ) ; j ++ )
cout myArray [ j ] » « ;
//Add newline
cout endl ;
Следующий вывод появится после выполнения вышеуказанного кода.
Заключение
В этом руководстве описаны два разных способа подсчета общих элементов вектора с использованием вектора строковых данных и числовых данных. Пользователь C ++ сможет подсчитать размер вектора с помощью встроенной функции или цикла для решения различных задач программирования после прочтения этого руководства.


