c++ - STL 容器与结构

标签 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 更具可读性

最佳答案

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

一个区别是在 struct 中,每个元素都有一个名称,而 tuple 则不是这样。特别是如果您有超过 2 或 3 个元素,这可以使结构更具可读性。

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

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

关于c++ - STL 容器与结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40060681/

相关文章:

c++ - 为什么 STL 优先级队列错误地排序我的类对象

c++ - Boost flat_map 容器

c++ - 如何防止迭代器超出范围?

c++ - 接受器和 Async_Accept 的问题

c++ - QComboBox 在发出 "currentIndexChanged(int)"时获取 Varient

pointers - 覆盖接口(interface)指针值

结构体中的 char 数组成员 - 值复制到两个成员

c - 多叉树的结构 - C

c++ - MSMQ - C++ 还是 COM?

c++ - 是否有标准库函数可以反转 STL 堆栈?