如何在 Arduino 中创建重复多次相同元素的数组?

How to Create an Array with Same Element repeated multiple times in Arduino?

**array=[symbol,count,symbol,count.....]
for eg: array=[3,2,5,4..]
new_array=[3,3,5,5,5,5...]**

      int array[]={25,6,10,2,4,3,9,5};
       int value1[16]={0};
        Serial.print("\n RLE decoded");
       for(i=0;i<len;i++)
       {
         if(i%2==0)
         {
           value[i] = array[i];
           i=i+1;
           count=array[i];
         }
         for(j=0; j<count;j++)
         {

           Serial.print(value[i]);
           Serial.print('\t');
         }

如何在Arduino中创建重复多次相同元素的数组? 这段代码工作正常,我们能够重复打印符号,但这段代码的问题是 :: 重复的值没有存储到新数组中。我们尝试声明一个新数组来存储重复的值,但它不起作用!!

数组是相同元素的集合,但是symbol和count显然是不同的东西。为了将不同的事物组合在一起,struct 是在 C

的早期发明的
struct {char symbol;  byte count;} input[] = {
  {'a', 2}, {'X' ,3} ,{'!', 1}  
};

const byte inputcount = sizeof(input)/sizeof(input[0]); // 3 in this test
char expanded[20]; // will get the result 

void setup() {
   Serial.begin(9600);
   char* resultpos = expanded;
   for (auto& elem:input) { 
      for (byte p = 0; p < elem.count; p++) {
         *resultpos++ = elem.symbol;
      }
   }
   *resultpos = 0; // to make it a printable char array
   Serial.println(expanded); // should give "aaXXX!"
}
void loop() {}

如果愿意,您也可以使用经典类型的 for 循环。但是这个 for each 真的很好,IMO。