STL容器vs Structs

时间:2016-10-15 15:10:17

标签: c++ struct stl

我想知道什么是更好用以及为什么:

之前我曾经使用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;

谢谢

[编辑]我把这个元组的例子让它可见,但是例如

typedef std::pair<int, int> iCoord; /* VS */ struct iCoord{int x, y;};

似乎唯一不同之处在于struct比STL Container具有更高的可读性

2 个答案:

答案 0 :(得分:3)

内存使用和性能没有显着差异。所以主要标准应该是可读性。

一个区别是,在struct中,每个元素都有一个名称,而tuple的情况则不然。特别是如果你有更多的2或3个元素,这可以使结构更具可读性。

顺便说一下,你的struct声明是C风格。在C ++中,您可以这样写:

struct SomeType { std::string sVar; int iVar, iVar2; bool bVar; };

答案 1 :(得分:2)

这个问题没有独特的答案,这取决于你的情况。我个人认为,如果你有两个以上的变量你应该使用struct,除非你有充分的理由不这样做。在结构中,您可以为变量指定名称,这样您就不必记住数字1是这个而数字2是。