#include <stdio.h> #include <vector> using namespace std; int main() { // vector クラス printf("*** vector クラス ***\n"); vector<int> u1 {1, 2, 3}; vector<int> u2 {1, 2, 3}; vector<int> u3 = u1; printf("u1 : %d %d %d\n", u1[0], u1[1], u1[2]); printf("u2 : %d %d %d\n", u2[0], u2[1], u2[2]); printf("u3 : %d %d %d\n", u3[0], u3[1], u3[2]); printf(" u1[0] -> 10,u2[1] -> 20,u3[2] -> 30\n"); u1[0] = 10; u2[1] = 20; u3[2] = 30; printf("u1 : %d %d %d\n", u1[0], u1[1], u1[2]); printf("u2 : %d %d %d\n", u2[0], u2[1], u2[2]); printf("u3 : %d %d %d\n", u3[0], u3[1], u3[2]); printf("*** vector クラス(u1 のアドレス) ***\n"); vector<int> *u4 = &u1; printf("u1 : %d %d %d\n", u1[0], u1[1], u1[2]); printf("u2 : %d %d %d\n", u2[0], u2[1], u2[2]); printf("u4 : %d %d %d\n", (*u4)[0], (*u4)[1], (*u4)[2]); printf(" u1[0] -> 10,u2[1] -> 20,u4[2] -> 30\n"); u1[0] = 10; u2[1] = 20; (*u4)[2] = 30; printf("u1 : %d %d %d\n", u1[0], u1[1], u1[2]); printf("u2 : %d %d %d\n", u2[0], u2[1], u2[2]); printf("u4 : %d %d %d\n", (*u4)[0], (*u4)[1], (*u4)[2]); // 配列 printf("*** 配列 ***\n"); int v1[] {1, 2, 3}; int v2[] {1, 2, 3}; int v3[3]; // v3 = v1 ができない for (int i1 = 0; i1 < 3; i1++) v3[i1] = v1[i1]; printf("v1 : %d %d %d\n", v1[0], v1[1], v1[2]); printf("v2 : %d %d %d\n", v2[0], v2[1], v2[2]); printf("v3 : %d %d %d\n", v3[0], v3[1], v3[2]); printf(" v1[0] -> 10,v2[1] -> 20,v3[2] -> 30\n"); v1[0] = 10; v2[1] = 20; v3[2] = 30; printf("v1 : %d %d %d\n", v1[0], v1[1], v1[2]); printf("v2 : %d %d %d\n", v2[0], v2[1], v2[2]); printf("v3 : %d %d %d\n", v3[0], v3[1], v3[2]); printf("*** 配列(v1 のアドレス) ***\n"); int *v4 = v1; printf("v1 : %d %d %d\n", v1[0], v1[1], v1[2]); printf("v2 : %d %d %d\n", v2[0], v2[1], v2[2]); printf("v4 : %d %d %d\n", v4[0], v4[1], v4[2]); printf(" v1[0] -> 10,v2[1] -> 20,v3[2] -> 30\n"); v1[0] = 10; v2[1] = 20; v4[2] = 30; printf("v1 : %d %d %d\n", v1[0], v1[1], v1[2]); printf("v2 : %d %d %d\n", v2[0], v2[1], v2[2]); printf("v4 : %d %d %d\n", v4[0], v4[1], v4[2]); // 配列( new ) printf("*** 配列( new ) ***\n"); int *w1 = new int[3] {1, 2, 3}; int *w2 = new int[3] {1, 2, 3}; int *w3 = w1; printf("w1 : %d %d %d\n", w1[0], w1[1], w1[2]); printf("w2 : %d %d %d\n", w2[0], w2[1], w2[2]); printf("w3 : %d %d %d\n", w3[0], w3[1], w3[2]); printf(" w1[0] -> 10,w2[1] -> 20,w3[2] -> 30\n"); w1[0] = 10; w2[1] = 20; w3[2] = 30; printf("w1 : %d %d %d\n", w1[0], w1[1], w1[2]); printf("w2 : %d %d %d\n", w2[0], w2[1], w2[2]); printf("w3 : %d %d %d\n", w3[0], w3[1], w3[2]); return 0; }
*** vector クラス *** u1 : 1 2 3 u2 : 1 2 3 u3 : 1 2 3 u1[0] -> 10,u2[1] -> 20,u3[2] -> 30 u1 : 10 2 3 u2 : 1 20 3 u3 : 1 2 30 *** vector クラス(u1 のアドレス) *** u1 : 10 2 3 u2 : 1 20 3 u4 : 10 2 3 u1[0] -> 10,u2[1] -> 20,u4[2] -> 30 u1 : 10 2 30 u2 : 1 20 3 u4 : 10 2 30 *** 配列 *** v1 : 1 2 3 v2 : 1 2 3 v3 : 1 2 3 v1[0] -> 10,v2[1] -> 20,v3[2] -> 30 v1 : 10 2 3 v2 : 1 20 3 v3 : 1 2 30 *** 配列(v1 のアドレス) *** v1 : 10 2 3 v2 : 1 20 3 v4 : 10 2 3 v1[0] -> 10,v2[1] -> 20,v3[2] -> 30 v1 : 10 2 30 v2 : 1 20 3 v4 : 10 2 30 *** 配列( new ) *** w1 : 1 2 3 w2 : 1 2 3 w3 : 1 2 3 w1[0] -> 10,w2[1] -> 20,w3[2] -> 30 w1 : 10 2 30 w2 : 1 20 3 w3 : 10 2 30