我正在嘗試爲矢量添加一些調試工具。我的課程「有一個」矢量並提供如下功能:連續內存的InputIterator?
template <typename InputIterator>
void assign(InputIterator first, InputIterator last)
矢量和字符串是具有連續內存的容器。當first
和last
來自一個向量(或具有連續內存的其他容器)時,我可以對迭代器執行額外的理智檢查。例如,我可以檢查:
- 最後>第一
- [第一,最後一個)不與現有的元素重疊
- 計數=最後 - 第一+ 1是明智的
我想要在容器使用連續內存時爲附加診斷和檢測提供專門化,但我不知道迭代器被調用的是什麼(並且無法通過源來定位它):
template <typename SequentialIterator>
void assign(SequentialIterator first, SequentialIterator last)
'SequentialIterator'或'ContiguousIterator'的名稱是什麼?
['標準:: random_access_iterator_tag'(HTTP://en.cppreference。 COM/W/CPP /迭代器/ iterator_tags)? – 2013-03-01 00:32:38