STL容器vs结构体

STL containers vs Structs

本文关键字:结构体 vs 容器 STL      更新时间:2023-10-16

我想知道什么是更好的使用和为什么:

在我使用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个元素时,这可以使结构体更具可读性。

顺便说一下,你的结构声明是C风格的。在c++中,你可以这样写:
struct SomeType { std::string sVar; int iVar, iVar2; bool bVar; };

这个问题没有唯一的答案,这取决于你的情况。我个人的观点是,如果你有两个以上的变量,你应该使用struct,除非你有充分的理由不这样做。在struct中,你可以给你的变量命名,这样你就不必记住数字1是这个,数字2是那个。