Wie kann man vector nutzen?

Hallo,

laut IDE Bibliothekenverwaltung soll das in der ArduinoSTL enthalten sein. Also habe ich die “ArduinoSTL” installiert.
Aber egal ob ich diese oder vector inkludieren versuche und eine Deklaration angebe

vector<int> v;

‘vector’ does not name a type
Gibts dafür eine Lösung?

Verwendet die Bibliothek einen Namensraum wie die normale STL?

Natürlich tut sie das!

Also:

#include <ArduinoSTL.h>
std::vector<int> v;
void setup() 
{
}

void loop() 
{
}

oder:

#include <ArduinoSTL.h>
using namespace std;
vector<int> v;
void setup() 
{
}

void loop() 
{
}

Hallo,

ja, so funktioniert es jetzt … :slight_smile:

#include <ArduinoSTL.h>
using namespace std;

vector<int> v1 {1,2,3,4};
vector<int> v2 {};
vector<int> v3 (19);

void setup() {
  Serial.begin(9600);
  Serial.println( v1.size() );
  Serial.println( v2.size() );
  Serial.println( v3.size() );
}

void loop() {
  
}

Edit: ist jedoch nicht so einfach wie man das gewohnt ist unter Arduino.

Hallo,

muss nochmal nachfragen. Ist denn in den Tiefen der IDE der namespace std nicht voreingestellt? Sonst müßte man den doch immer angeben? Eben für die Standard Funktionen. Das wundert mich gerade etwas.

Ist denn in den Tiefen der IDE der namespace std nicht voreingestellt? Sonst müßte man den doch immer angeben?

Im Grunde hast du dir das selber beantwortet.

Ja, demzufolge ist es nicht in den Tiefen voreingestellt. Kann sein das ich das mit einer anderen Standardbibliothek verwechselt habe. Davon gibts gefühlt Tausende. Jedenfalls kann man damit viele fertige Algorithmen nutzen - nun auch in der Arduino IDE. :)