если Вы получаете ошибку в окне Add References, попытайтесь редактировать .csproj для добавления ссылки (наряду с другими ссылками) в Ссылке ItemGroup как:
<ItemGroup>
<Reference Include="System.Configuration" />
</ItemGroup>
О вставке в векторы стандарт говорит в 23.2.4.3/1:
[
insert ()
] вызывает перераспределение, если новый размер больше старого вместимость. Если перераспределения не происходит, все итераторы и ссылки до того, как точка вставки останется
(Хотя на самом деле здесь говорится о insert ()
, таблица 68 показывает, что a.push_back (x)
должен быть эквивалентен a.insert ( a.end (), x)
для любого вектора a
и значения x
.) Это означает, что если вы зарезервируете ()
заранее достаточно памяти, тогда (и только тогда) итераторы и ссылки гарантированно не станут недействительными, если вы insert ()
или push_back ()
больше элементов.
Что касается удаления элементов, 23.2.4.3/ 3 говорит:
[
erase ()
] отменяет все итераторы и ссылки после точка стирания.
Согласно Таблице 68 и Таблице 67 соответственно, pop_back ()
и clear ()
эквивалентны соответствующим вызовам erase ()
.
Некоторые основные правила для вектора:
Я ожидаю, что ссылки будут признаны недействительными только при явном или неявном resize ()
(см. Также max_size
, capacity
] и резервные
методы).
Вектор аннулирует свой итератор и ссылки при перераспределении, что зависит от его текущей емкости. Хотя приведенный выше код может работать в некоторых случаях, вам не следует полагаться на него, поскольку ссылка может стать недействительной после вызова push_back (4).