К сожалению сырых массивы не соответствуют требованиям * std::vector
«s для типа элемента из-за многочисленные странности типов массивов.
Если вы действительно хотите массивы фиксированного размера, вы должны использовать std::array<wchar_t,SIZE>
, как std::array
шаблона устраняет проблемы с сырьевыми массивами и вместо этого производит объекты, которые действуют как собственные значения (например, std::array<wchar_t,SIZE>
присваиванию, тогда как сырые массивы не являются) ,
Однако, если вы хотите, чтобы строковые данные и строки не все были одинаковыми фиксированными размерами, вы не должны использовать массивы вообще. Вы должны, скорее всего, использование std::wstring
:
std::vector<std::wstring> string_list;
* Если я не ошибаюсь, он на самом деле является законным в соответствии с C++ 11 спецификации сказать std::vector<wchar_t[100]> v(100);
потому что делать это в одиночку не устанавливает каких-либо требований по тип элемента, за исключением того, что он по умолчанию конструктивен, какие массивы. Однако выполнение большинства полезных данных с v
требует больше от типа элемента, чем предоставляют массивы.
Массивы не могут быть назначены, что является требованием для типов в векторах. –