Сцинтилла лексер в помощь. Попытка сохранить определенную информацию о линии для последующего использования

Я использую возможности лексирования scintilla и хочу сделать что-то нестандартное.

Пожалуйста, имейте в виду, что, несмотря на то, что у меня есть небольшой опыт работы с другими языками, я начинающий программист на C++.

Я ищу указатели о том, как сохранить конкретную информацию о строке для последующего использования. Первая идея, которая пришла в голову, — создать массив и заполнить соответствующее поле массива для номера нашей строки, например:

int lineOpt[];

...

lineOpt[20] = 20;
lineOpt[21] = 20;
lineOpt[372]= 75;

...

Но что-то здесь не так. Я не уверен, что это правильный путь не только из-за массива «неограниченного» размера, который я только что создал, но и из-за «пробелов», которые будут присутствовать.

Эти параметры будут установлены только для нескольких конкретных строк (в зависимости от того, какой текст присутствует в них), и снова у меня есть ощущение, что это можно сделать по-другому.

Любая помощь или указатели на некоторые статьи будут оценены.


person RaptorX    schedule 15.12.2012    source источник


Ответы (1)


Похоже, вам нужна ассоциативная структура контейнера, а не массив. Массивы всегда имеют фиксированную длину, установленную во время компиляции; вы не можете изменить их размер во время выполнения. Ваше заявление int lineOpt[] является незаконным.

Рассмотрим std::map<unsigned int, unsigned int> или std::unordered_map<unsigned int, unsigned int>.

person Billy ONeal    schedule 15.12.2012