Я учусь использовать векторы в C ++, используя в этом посте , и они привели приведенный ниже пример заполнения вектора с помощью массива. Синтаксис немного сбивает с толку, хотя.
#include <iostream>
#include <string>
#include <vector>
int main() {
// Array of string objects
std::string arr[] = {
"first",
"sec",
"third",
"fourth"
};
// Vector with a string array
std::vector < std::string > vecOfStr(arr,arr +sizeof(arr) / sizeof(std::string)); //This line is confusing
for (std::string str: vecOfStr)
std::cout << str << std::endl;
}
Насколько я понимаю, сразу после имени переменной для вектора появляется размер вектора. Я предположил бы, что это было бы просто sizeof(arr) / sizeof(std::string)
, но вместо этого arr,arr +sizeof(arr) / sizeof(std::string)
. Кто-нибудь может сказать мне, почему?