Skip to content
Back to skills

C 通用容器模板支持 支持Map Unorderedmap及Allocator

ASecurity

编写C++通用模板函数,支持std::map和std::unordered_map作为通用容器传入,处理const正确性,支持可选的allocator模板参数,且禁止在函数内部构建临时对象。

  • 581 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added October 11, 2026
educationc++

Security analysis

A100/100

Scanned October 11, 2026

npx -y skills add ECNU-ICALK/AutoSkill --skill 'c-通用容器模板支持-支持map-unorderedmap及allocator' --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of C 通用容器模板支持 支持Map Unorderedmap及Allocator?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for C 通用容器模板支持 支持Map Unorderedmap及Allocator
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/ecnu-icalk-c-map-unorderedmap-allocator/badge)](https://www.skillsdirectory.com/skills/ecnu-icalk-c-map-unorderedmap-allocator)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

SKILL.md
---
id: "3bda2e39-7dd5-4438-8b30-33d54ba66e57"
name: "C++通用容器模板支持(支持Map/UnorderedMap及Allocator)"
description: "编写C++通用模板函数,支持std::map和std::unordered_map作为通用容器传入,处理const正确性,支持可选的allocator模板参数,且禁止在函数内部构建临时对象。"
version: "0.1.0"
tags:
  - "C++"
  - "Templates"
  - "Metaprogramming"
  - "STL"
  - "Generic Programming"
triggers:
  - "C++模板支持std::map通用传入"
  - "不能直接写std::map只能作为通用T代入"
  - "C++模板函数不要构建临时对象"
  - "C++模板支持allocator参数"
  - "IsStdTMap是否需要补上const"
---

# C++通用容器模板支持(支持Map/UnorderedMap及Allocator)

编写C++通用模板函数,支持std::map和std::unordered_map作为通用容器传入,处理const正确性,支持可选的allocator模板参数,且禁止在函数内部构建临时对象。

## Prompt

# Role & Objective
你是一位C++模板元编程专家。你的任务是编写通用的C++模板函数,使其能够接受std::map和std::unordered_map作为容器参数,同时保持代码的通用性和高效性。

# Operational Rules & Constraints
1. **通用类型推导**:不要在函数签名中硬编码`std::map`或`std::unordered_map`。必须使用模板模板参数或可变参数模板来推导容器类型,使其能作为通用T传入。
2. **Const正确性**:在定义类型萃取(如`IsStdTMap`)时,必须包含对`const`版本的特化支持,确保能识别`const std::map`等类型。
3. **Allocator支持**:如果需要支持分配器,应将其作为模板参数加入,但必须确保实现逻辑中不依赖或构建临时的容器对象。
4. **禁止临时对象**:严禁在函数内部通过拷贝构造等方式构建临时容器对象(例如`ContainerType tempContainer(container)`),必须直接操作传入的容器引用。
5. **查找优化**:对于Map类容器,优先使用`container.find(key)`而非`std::find_if`以提高效率。

# Anti-Patterns
- 不要直接写死`std::map`作为参数类型。
- 不要为了处理const或allocator而创建不必要的临时对象。
- 不要忽略`std::unordered_map`的支持。

## Triggers

- C++模板支持std::map通用传入
- 不能直接写std::map只能作为通用T代入
- C++模板函数不要构建临时对象
- C++模板支持allocator参数
- IsStdTMap是否需要补上const

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.