как создать Vector?
- Войдите на сайт для отправки комментариев
Пнд, 26/03/2018 - 02:02
Пробую так и выводит нули
#include <vector> //Подключаем директиву vector using namespace std; //Необходимо использовать пространство имен std void setup() { Serial.begin (9600); } void loop() { vector<int> v(10); //Объявили вектор в десять элементов for (int i=0;i<10;i++) v.push_back(i); //Добавили к вектору десять чисел 1,2,3...10 for (int i=0;i<10;i++) Serial.println(v[i]); //Вывели первые десять чисел вектора на экран while(true); }
в Дуне пространство имён std ограничивается определением std::nullptr_t
Пробую так и выводит нули
В какой версии IDE Вы это пробовали и выводило нули?
1.8.5
В 1.8.5 "из коробки" нет библиотеки STL (в которой живёт vector) и, стало быть, Ваш код скомпилироваться не может. Бибилиотек же есть несколько. Какую именно Вы использовали? Давайте ссылку, я посмотрю и тогда смогу что-нибудь сказать.
Кстати, а нафига Вам нужен vector? Он же в целом довольно бессмысленная вещь. Особенно, если в программе другие коллекции не используются. Зачем?
ясно. Затрудняюсь ответить насчёт библиотеки STL. Вектор - может и бессмысленная. Только мне его andriano использовать советовал (...ааа, или List он мне советовал? Не помню точно, наверное всё же List). Я пишу миди-секвенсор. ДКоличество миди-сообщений музыкального проекта заранее не известна. Плюс к этому, нужна будет возможность вставки нового элемента в нужное мне место (а не добавляться в конец), так как читаться (при проигрывании) вектор будет по порядку. Вы посоветете иную форму хранения данных?
http://khpi-iip.mipk.kharkiv.edu/library/datastr/book/prt05.html
Изучайте структуры указывающие сами на себя и работа с ними.
ясно. Затрудняюсь ответить насчёт библиотеки STL.
Упрощу вопрос. В самой IDE нет никакого вектора (и листа тоже). Вы их взяли из какой-то библиотеки. Из какой? Давайте ссылку.
спасибо. я разобрался с STL, пользуюсь теперь этой https://github.com/zacsketches/Arduino_Vector
Так, вопрос снят?
В ситуации когда нужно поместить в массив данные размер которых до их появления не известен можно как-то избежать использования вектора?
В ситуации когда нужно поместить в массив данные размер которых до их появления не известен можно как-то избежать использования вектора?
Можно. Так же, как это реализовано в vector - динамически переаллоцировать память при необходимости.