From 9714c051c58297d193dff39ab186198ad7cd60ee Mon Sep 17 00:00:00 2001 From: boris Date: Mon, 7 Sep 2026 13:57:12 +0800 Subject: [PATCH] =?UTF-8?q?=E7=B2=BE=E7=A1=AE=E9=A2=84=E5=88=86=E9=85=8D?= =?UTF-8?q?=E6=8C=89=E8=82=A1=E8=A1=8C=E6=83=85=E5=88=86=E7=BB=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- crates/fidc-core/src/data.rs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/crates/fidc-core/src/data.rs b/crates/fidc-core/src/data.rs index ccf2fa9..4269569 100644 --- a/crates/fidc-core/src/data.rs +++ b/crates/fidc-core/src/data.rs @@ -4513,8 +4513,14 @@ fn group_rows_by_symbol_id<'a, T>( symbol_ids_by_date: &BTreeMap>, symbol_count: usize, ) -> Result>, DataSetError> { - let mut rows_by_symbol_id = (0..symbol_count) - .map(|_| Vec::<&T>::new()) + let mut row_counts_by_symbol_id = vec![0usize; symbol_count]; + for symbol_id in symbol_ids_by_date.values().flatten() { + row_counts_by_symbol_id[*symbol_id as usize] = + row_counts_by_symbol_id[*symbol_id as usize].saturating_add(1); + } + let mut rows_by_symbol_id = row_counts_by_symbol_id + .into_iter() + .map(Vec::<&T>::with_capacity) .collect::>(); for (date, rows) in groups { let symbol_ids = symbol_ids_by_date