#include <vector>
#include <cstdio>
using namespace std;
void show (const vector<float[2]> &v, const char *msg = nullptr) {
if (msg) printf("%s: ", msg);
for (int n = 0; n < v.size(); ++ n)
printf("(%f,%f) ", v[n][0], v[n][1]);
printf("\n => [ ");
for (int n = 0; n < v.size() * 2; ++ n)
printf("%f ", ((float *)&(v[0]))[n]);
printf("]\n");
}
int main() {
vector<float[2]> test(5);
show(test);
for (int n = 0; n < test.size(); ++ n) {
test[n][0] = n + 1;
test[n][1] = (n + 1) * 11;
}
show(test);
float *testf = (float*)&(test[0]);
for (int n = 0; n < test.size(); ++ n) {
auto &v = test;
printf("%d[0] %p %p %p\n", n, &(v[n]), &(v[n][0]), &(testf[n*2+0]));
printf("%d[1] %p %p %p\n", n, &(v[n]), &(v[n][1]), &(testf[n*2+1]));
}
return 0;
}
I2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPGNzdGRpbz4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnZvaWQgc2hvdyAoY29uc3QgdmVjdG9yPGZsb2F0WzJdPiAmdiwgY29uc3QgY2hhciAqbXNnID0gbnVsbHB0cikgewoJaWYgKG1zZykgcHJpbnRmKCIlczogIiwgbXNnKTsKCWZvciAoaW50IG4gPSAwOyBuIDwgdi5zaXplKCk7ICsrIG4pCgkJcHJpbnRmKCIoJWYsJWYpICIsIHZbbl1bMF0sIHZbbl1bMV0pOwoJcHJpbnRmKCJcbiAgPT4gWyAiKTsKCWZvciAoaW50IG4gPSAwOyBuIDwgdi5zaXplKCkgKiAyOyArKyBuKQoJCXByaW50ZigiJWYgIiwgKChmbG9hdCAqKSYodlswXSkpW25dKTsKCXByaW50ZigiXVxuIik7Cn0KCmludCBtYWluKCkgewoKCXZlY3RvcjxmbG9hdFsyXT4gdGVzdCg1KTsKCXNob3codGVzdCk7CgoJZm9yIChpbnQgbiA9IDA7IG4gPCB0ZXN0LnNpemUoKTsgKysgbikgewoJCXRlc3Rbbl1bMF0gPSBuICsgMTsKCQl0ZXN0W25dWzFdID0gKG4gKyAxKSAqIDExOwoJfQoJc2hvdyh0ZXN0KTsKCglmbG9hdCAqdGVzdGYgPSAoZmxvYXQqKSYodGVzdFswXSk7Cglmb3IgKGludCBuID0gMDsgbiA8IHRlc3Quc2l6ZSgpOyArKyBuKSB7CgkJYXV0byAmdiA9IHRlc3Q7CgkJcHJpbnRmKCIlZFswXSAlcCAlcCAlcFxuIiwgbiwgJih2W25dKSwgJih2W25dWzBdKSwgJih0ZXN0ZltuKjIrMF0pKTsKCQlwcmludGYoIiVkWzFdICVwICVwICVwXG4iLCBuLCAmKHZbbl0pLCAmKHZbbl1bMV0pLCAmKHRlc3RmW24qMisxXSkpOwoJfQoKCXJldHVybiAwOwp9
(0.000000,0.000000) (0.000000,0.000000) (0.000000,0.000000) (0.000000,0.000000) (0.000000,0.000000)
=> [ 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 ]
(1.000000,11.000000) (2.000000,22.000000) (3.000000,33.000000) (4.000000,44.000000) (5.000000,55.000000)
=> [ 1.000000 11.000000 2.000000 22.000000 3.000000 33.000000 4.000000 44.000000 5.000000 55.000000 ]
0[0] 0x55a7a0c4fe70 0x55a7a0c4fe70 0x55a7a0c4fe70
0[1] 0x55a7a0c4fe70 0x55a7a0c4fe74 0x55a7a0c4fe74
1[0] 0x55a7a0c4fe78 0x55a7a0c4fe78 0x55a7a0c4fe78
1[1] 0x55a7a0c4fe78 0x55a7a0c4fe7c 0x55a7a0c4fe7c
2[0] 0x55a7a0c4fe80 0x55a7a0c4fe80 0x55a7a0c4fe80
2[1] 0x55a7a0c4fe80 0x55a7a0c4fe84 0x55a7a0c4fe84
3[0] 0x55a7a0c4fe88 0x55a7a0c4fe88 0x55a7a0c4fe88
3[1] 0x55a7a0c4fe88 0x55a7a0c4fe8c 0x55a7a0c4fe8c
4[0] 0x55a7a0c4fe90 0x55a7a0c4fe90 0x55a7a0c4fe90
4[1] 0x55a7a0c4fe90 0x55a7a0c4fe94 0x55a7a0c4fe94