-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathvector.cpp
More file actions
70 lines (60 loc) Β· 1.43 KB
/
vector.cpp
File metadata and controls
70 lines (60 loc) Β· 1.43 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#include <algorithm>
#include <cstdio>
#include <iostream>
#include <vector>
template <class T> void printArray(std::vector<T> &array) {
for (auto item : array) {
std::cout << item << " ";
}
std::cout << std::endl;
}
struct A {
float *ptr;
float f;
};
void setArrayA(std::vector<A> &arrayA) {
A a;
a.f = 1;
a.ptr = &a.f;
arrayA.push_back(a);
}
struct vec4 {
float x;
float y;
float z;
float w;
};
inline std::ostream &operator<<(std::ostream &s, const vec4 &v) {
s << '[' << v.x << ',' << v.y << ',' << v.z << ',' << v.w << ']';
return s;
}
int main(void) {
std::vector<float> array{};
array.push_back(1);
array.push_back(2);
auto arrayClone = array;
printArray(arrayClone);
// θΏη§ζΉεΌζ―δΈθ‘η
std::vector<A> arrayA;
setArrayA(arrayA);
for (auto _ : arrayA) {
*(_.ptr) = 0;
printf("a.f: %f \n", _.f);
}
std::vector<A> arrayB{10};
std::cout << arrayB.size() << std::endl;
vec4 arrayVec4[3];
vec4 *vec4Ptr = arrayVec4;
vec4Ptr[0] = {1, 0, 0, 0};
vec4Ptr[1] = {2, 0, 0, 0};
vec4Ptr[2] = {3, 0, 0, 0};
std::cout << arrayVec4[0] << std::endl;
std::cout << arrayVec4[1] << std::endl;
std::cout << arrayVec4[2] << std::endl;
// std::fill((float *)vec4Ptr, (float *)(vec4Ptr + 3),
// -2);
std::fill_n((float *)vec4Ptr, 3 * 4, -2);
std::cout << arrayVec4[0] << std::endl;
std::cout << arrayVec4[1] << std::endl;
std::cout << arrayVec4[2] << std::endl;
}