文章目录
- 前言
- 一、Arduino中的Vector
- 示例代码
- 二、Arduino中的Map
- 示例代码
前言
最近在玩Arduino,自上次发现Arduino可以用Template,能使用高级宏后,这次发现Arduino竟可以使用C++中的一些STL容器,这属实令人震惊。起因是我打算做一个动态的数组,但是手动实现一些操作属实麻烦,于是看看是否有一些简便的方法,最好是Arduino本身就已经集成的东西。经过一阵查找资料,发现大家似乎一直对Arduino比较鄙夷,但还是有国外大佬提示Arduino中已经自带这部分内容,只不过是部分数据类型需要手动包含头文件。(即使官方自带,仍然有很多人造轮子,是故意的还是不小心)当真正上手的时候才发现Arduino是多么强大,尽管不像esptool那么精细,但是该有的基本上都有,还支持C++的语法,实在是太香了。
对于C++中的STL容器,如果你感兴趣,或者有C++基础,可以去看看C++的文档,这里就以最常见的Vector和Map为例,简单介绍如何在Arduino中使用STL里面的内容,你只需要随机应变就可以了。
一、Arduino中的Vector
Vector是常见的动态数组数据类型,他的好处是关于动态数组的一些操作已经做好了,是现成的,而且性能也不用考虑,毕竟进了标准库了,能差到那里去,所以是可以放心使用的。要想在Arduino中使用Vector很简单,直接用就行,并且不需要包含头文件。
示例代码
定义一个vector
std::vector<string> a{"0", "1", "2", "3", "4", "5", "6", "7", "8"};
然后是一些常见的操作,你可以直接查看C++的语言参考,其实到这里就已经结束了,具体可以看看这篇文章
auto it1 =