큰 사각형 배열을 만들고 싶지만 차원 제한은 1023입니다. 따라서 in a comment과 같이 1D 배열의 Vec
을 만들고 싶습니다. VMAX
의 값 괜찮큰 2D 행렬을 만드는 방법
fn main() {
const VMAX: usize = 1000;
const ALEN: usize = 32;
let mut arr2: Vec<[f64; ALEN]> = vec![[0.0; ALEN]; VMAX];}
하지만, 32보다 큰 ALEN
이 제공 :
error[E0277]: the trait bound `[f64; 33]: std::clone::Clone` is not satisfied
--> <std macros>:2:1
|
2 | $ crate :: vec :: from_elem ($ elem , $ n)) ; ($ ($ x : expr) , *) => (
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^
tes3.rs:4:35: 4:58 note: in this expansion of vec! (defined in <std macros>)
|
= help: the following implementations were found:
= help: <[T; 0] as std::clone::Clone>
= help: <[T; 1] as std::clone::Clone>
= help: <[T; 2] as std::clone::Clone>
= help: <[T; 3] as std::clone::Clone>
= help: and 29 others
= note: required by `std::vec::from_elem`
뭔가 잘못 가고 나는 문제 정보를 발견하고 해석 한 나는 시작으로이 시도 에러 메시지. 거대한 사각형 매트릭스를 만들려면 어떻게해야합니까? 다른 접근법도 좋을 것이고, 성과는 중요합니다. 물론 인덱스를 반복하고 일부 값을 입력하는 등 배열을 사용하여 작업을 수행합니다.
* 치수 제한은 1023 * - 아니요, 아닙니다. 이는 "메모리 제한"이 모든 컴퓨터에 있기 때문에 4GB라고 말합니다. 예, 스택 공간은 제한되어 있지만 일반적으로 일부 경계 내에서 변경할 수 있습니다. 또한 배열의 항목이 1MB를 차지하는 경우 배열에 1023 개를 배치 할 가능성은 없으며 항목에 단일 바이트가있는 경우 1023 개 이상을 배치 할 수 있습니다. – Shepmaster
중복 된 http : // stackoverflow. com/q/25151890/155423 또는 http://stackoverflow.com/q/13102786/155423 또는 http://stackoverflow.com/q/28145732/155423 또는 http://stackoverflow.com/q/39240360/155423. ** ** 질문을하기 전에 검색을 수행하여 ** 답변자의 시간을 존중하십시오. 발생한 특정 오류는 http://stackoverflow.com/q/30415354/155423에 설명되어 있습니다. – Shepmaster
또한 숫자 및 과학 컴퓨팅을 다루는 [몇 개의 상자] (https://crates.io/)가 있습니다. 그 상자의 저자는 이미 이러한 결정에 대해 많은 생각을했습니다. 제가 알고있는 것은 [ndarray]입니다 (https://github.com/bluss/rust-ndarray). – Shepmaster