Assign
Sao chép một ma trận, vector hoặc mảng với ép kiểu tự động.
cpp
bool matrix::Assign(
const matrix<T> &mat // ma trận được sao chép
);
bool matrix::Assign(
const void &array[] // mảng được sao chép
);
bool vector::Assign(
const vector<T> &vec // vector được sao chép
);
bool vector::Assign(
const void &array[] // mảng được sao chép
);
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
Tham số
m, v or array
[in] Ma trận, vector hoặc mảng mà giá trị được sao chép từ đó.
Giá trị trả về
Trả về true
nếu thành công, ngược lại — false
.
Ghi chú
Không giống như Copy, phương thức Assign
cho phép sao chép cả mảng. Trong trường hợp này, ép kiểu tự động diễn ra, trong khi ma trận hoặc vector kết quả điều chỉnh theo kích thước của mảng được sao chép.
Ví dụ:
cpp
//--- sao chép các ma trận
matrix a= {{2, 2}, {3, 3}, {4, 4}};
matrix b=a+2;
matrix c;
Print("matrix a \n", a);
Print("matrix b \n", b);
c.Assign(b);
Print("matrix c \n", a);
//--- sao chép mảng vào ma trận
matrix double_matrix=matrix::Full(2,10,3.14);
Print("double_matrix before Assign() \n", double_matrix);
int int_arr[5][5]= {{1, 2}, {3, 4}, {5, 6}};
Print("int_arr:");
ArrayPrint(int_arr);
double_matrix.Assign(int_arr);
Print("double_matrix after Assign(int_arr) \n", double_matrix);
/*
matrix a
[[2,2]
[3,3]
[4,4]]
matrix b
[[4,4]
[5,5]
[6,6]]
matrix c
[[2,2]
[3,3]
[4,4]]
double_matrix before Assign()
[[3.14,3.14,3.14,3.14,3.14,3.14,3.14,3.14,3.14,3.14]
[3.14,3.14,3.14,3.14,3.14,3.14,3.14,3.14,3.14,3.14]]
int_arr:
[,0][,1][,2][,3][,4]
[0,] 1 2 0 0 0
[1,] 3 4 0 0 0
[2,] 5 6 0 0 0
[3,] 0 0 0 0 0
[4,] 0 0 0 0 0
double_matrix after Assign(int_arr)
[[1,2,0,0,0]
[3,4,0,0,0]
[5,6,0,0,0]
[0,0,0,0,0]
[0,0,0,0,0]]
*/
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
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
Xem thêm