для этого не нужно идти с категориями, или тип 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/
надеюсь, что это будет полезно
Попробуйте это:
vector<Type>::iterator nth = v.begin() + index;
путь, упомянутый @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 примечания.
Станд. 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]);
Or you can use std::advance
vector<int>::iterator i = L.begin();
advance(i, 2);