diff --git a/eqpalg/utility/expression_engine.h b/eqpalg/utility/expression_engine.h index 2b3edc0..a1af07c 100644 --- a/eqpalg/utility/expression_engine.h +++ b/eqpalg/utility/expression_engine.h @@ -119,7 +119,9 @@ private: static constexpr size_t PV_NUM = 6; static void ensureVarCache(VarsCache& vc, size_t tag_count) { - if (vc.tag_num == 0 && tag_count > 0) { + // VarsCache::tag_num 是未初始化的垃圾值,不能用来判断是否已初始化 + // 直接 init(),内部 resize 操作对已初始化的向量是安全的 + if (tag_count > 0 && vc.tag_keys.size() != tag_count) { vc.init(tag_count, 6); } }