STL容器vs结构体
STL containers vs Structs
我想知道什么是更好的使用和为什么:
在我使用STL容器创建类型之前,但最近我发现api使用结构体类型,我认为这是由于使用C而不是c++,但我想知道在性能和内存方面什么是最好的。
:
typedef std::tuple<std::string, int, int, bool> SomeType;
:
typedef struct tagSomeType { std::string sVar; int iVar, iVar2; bool bVar; } SomeType;
谢谢
[EDIT]我把这个例子的元组,使其可见,但例如
typedef std::pair<int, int> iCoord; /* VS */ struct iCoord{int x, y;};
似乎唯一的区别是struct比STL Container有更多的可读性
内存使用和性能没有显著差异。所以主要的标准应该是可读性。
一个不同之处在于,在struct
中,每个元素都有一个名称,而在tuple
中则不是这样。特别是当你有超过2或3个元素时,这可以使结构体更具可读性。
struct SomeType { std::string sVar; int iVar, iVar2; bool bVar; };
这个问题没有唯一的答案,这取决于你的情况。我个人的观点是,如果你有两个以上的变量,你应该使用struct,除非你有充分的理由不这样做。在struct中,你可以给你的变量命名,这样你就不必记住数字1是这个,数字2是那个。
相关文章:
- 根据用户回答声明"Players"。用户选择玩家数量。播放器是结构体
- 结构体 S { int align; } 之间的区别;(struct 关键字后的名称)和 struct { int al
- C++ - 如何在结构向量中找到结构体一个成员的最大值?
- 包含 std::list 的结构体的 C++ 初始化
- 结构体和类的不同大小(),彼此具有相同的字段类型
- 如何使用结构体的向量数组?
- 如何使用结构体在C++中更改这些代码?
- 无法在 Mosquitto MQTT Broker 插件上访问结构体 mosquitto 的元素
- 我应该如何在C++中使用结构体解决输入失败的问题?
- Qsort() 比较结构体整数的总和
- 如何使用迭代器指向结构体c++的向量
- 在C++中使用链表的堆栈实现中,访问结构体headNode成员count和top会导致运行时错误
- 如何获取结构体成员的地址
- 创建结构体向量,表达式:向量下标超出范围
- boost::任何带有结构体和无符号整数
- 大小(结构体)..给出错误的结果,VS 2010
- 按值返回结构体vs按引用返回结构体
- STL容器vs结构体
- Calloc (), malloc() vs新建一个内部有unordered_map的结构体
- 在VS断点中打印整个结构体