为一个c++ vector成员添加一个标志
Add a flag for one c++ vector member
旧程序使用vector作为自定义类型的容器,如:
std::vector<my_type> m_my_type_queue;
它使用vector的api,如:
m_my_type_queue.size();
m_my_type_queue.begin();
现在我想用一个额外的标签来扩展队列,所以我将向量与一个标签一起嵌入:
struct my_type_queue {
std::vector<my_type> m_vector;
mutable bool tag;
}
my_type_queue m_my_type_queue;
但是这个实现的问题是我需要用一个额外的层来访问队列,比如:
m_my_type_queue.m_vector.size();
m_my_type_queue.m_vector.begine();
我的问题是如何像以前一样访问成员,同时又能访问age,就像:
m_my_type_queue.size(); // the same as original implementation
m_my_type_queue.begin(); // the same as original implementation
m_my_type_queue.tag = true; // new feacture with tag access
我可以重新定义这些API的矢量和转发它们到真正的矢量,但有什么简单的方法来做到这一点?
满足需求的一种方法是使my_type_queue派生自std::vector。
但是我推荐一种不同的方法:使用vector,并保持一个单独的标志。
相关文章:
- 如何仅为一个函数添加延迟
- 使用std::transform将一个范围的元素添加到另一个范围中
- 为什么我必须在C++中添加一个赋值符号来声明一个数组
- 有没有比在库中添加一个并非由所有派生类实现的新虚拟函数更好的设计实践
- 在另一个类视图中添加最多2个图表的正确方法是什么
- 当我们从/tp地址中添加/减去一个整数时会发生什么
- C++(.cpp文件和.h文件)拆分代码并添加一个函数,提取 - 这很容易吗?
- 为什么我必须添加一个小数才能在C++中正确计算此数学
- 尝试将另一个子句添加到代码中时出错
- 使用 std::transform 将向量向量 (a) 添加到另一个向量向量 (b)
- 我正在尝试制作一个程序,在添加 n 天(整数)后告诉一个人什么是一天(例如星期一等)
- 在单链表前面添加一个节点后,我无法遍历每个节点
- 为什么 QXmlQuery 似乎在结果中添加了一个""?(以及如何解决它?
- C++将带有重载构造函数的对象添加到另一个对象
- 为什么我们需要在优先级队列声明中添加一个向量作为参数?
- c++:运行一个函数 8 次,并将每个答案添加到数组或 JSON 中
- 在多维向量中的特定位置添加一个值
- c ++ 我的 char* 数组被最后一个添加的元素覆盖
- 编写一个添加两个矩阵的函数
- 我正在尝试为 c++ 中的数组创建一个添加函数