Векторы STL C++: Получить итератор от индекса?

для этого не нужно идти с категориями, или тип datetime оси x просто меняет данные

в этом формате

data: [, [x1, y1], [x2, y2], [x3, y3], [x4, y4], [x5, y5]]

ex:

 data: [[1750,106], [1800,107], [1850,111], [1900,133], [1950,221], [1999,767], [2050,1766]]

обновили вашу скрипту js, пожалуйста, g0] http://jsfiddle.net/vKLPP/1/

надеюсь, что это будет полезно

192
задан Andy 25 May 2009 в 09:28
поделиться

4 ответа

Попробуйте это:

vector<Type>::iterator nth = v.begin() + index;
273
ответ дан dirkgently 4 November 2019 в 15:04
поделиться

путь, упомянутый @dirkgently ( v.begin() + index ), хорошим и быстрым для векторов

, но std::advance ( v.begin(), index ) большая часть универсального пути и для итераторов произвольного доступа, работает постоянное время также.

РЕДАКТИРОВАНИЕ
различия в использовании:

std::vector<>::iterator it = ( v.begin() + index );

или

std::vector<>::iterator it = v.begin();
std::advance( it, index );

добавленный после @litb примечания.

84
ответ дан bayda 4 November 2019 в 15:04
поделиться

Станд. Actutally:: вектор предназначен, чтобы использоваться в качестве вкладки C при необходимости. (Стандарт C++ запрашивает, чтобы для векторной реализации, насколько я знаю - замена для массива в Википедии), Например, было совершенно законно сделать это после, согласно мне:

int main()
{

void foo(const char *);

sdt::vector<char> vec;
vec.push_back('h');
vec.push_back('e');
vec.push_back('l');
vec.push_back('l');
vec.push_back('o');
vec.push_back('/0');

foo(&vec[0]);
}

Конечно, или нечто не должно копировать адрес, переданный в качестве параметра и хранить его где-нибудь, или необходимо удостовериться в программе, чтобы никогда продвинуть любой новый объект в vec или запрос изменить его способность. Или отказ сегментации риска...

Поэтому в Вашем exemple это приводит к

vector.insert(pos, &vec[first_index], &vec[last_index]);
-2
ответ дан yves Baumes 23 November 2019 в 05:23
поделиться

Or you can use std::advance

vector<int>::iterator i = L.begin();
advance(i, 2);
8
ответ дан 23 November 2019 в 05:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: