我正在尝试学习C++,现在我正在编写一个需要输出整数对列表的程序.
处理这个问题的最佳方法是什么?我在学校的linux电脑上没有可用的升级库,所以我不相信我可以使用boost :: tuple.
有什么建议?
Mah*_*dsi 31
编辑:
它是标准的C++,也是所谓的STL(标准模板库)的一部分.它是一组通用的好数据结构(即可用于存储任何C++对象类型).该特定结构用于将"元组"或一对数字存储在一起.它基本上是一个成员"first"和"second"的对象,它指的是你存储在它们中的第一个和第二个对象(任何类型!).
因此,只需声明一个pair<int, int>或者更好的数组,使用另一个称为"向量"的STL类型来制作动态大小的列表pair<int, int>:vector<pair<int, int> > myList.
嘿你知道什么!已经存在动态大小的对列表,它被称为地图!使用它就像#include <map>宣布一样简单map<int, int> myMap!!!
编辑:
是的,正如所指出的,地图很好地将一个对象"映射"到另一个对象,因此您不能重复左手边的值.如果那很好,那么地图就是你正在寻找的,否则坚持对的向量....或者看看多图.
小智 19
使用std :: pair?
#include <utility>
#include <iostream>
int main() {
std::pair <int, int> p = std::make_pair( 1, 2 );
std::cout << p.first << " " << p.second << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
你可以制作一对矢量:
typedef std::pair <int, int> IntPair;
...
std::vector <IntPair> pairs;
pairs.push_back( std::make_pair( 1, 2 ) );
pairs.push_back( std::make_pair( 3, 4 ) );
Run Code Online (Sandbox Code Playgroud)
虽然std :: pair是最好的使用方法,但我很惊讶没人提到pre-stl解决方案:
struct Pair {
int first;
int second;
};
Run Code Online (Sandbox Code Playgroud)
令人担忧的是,人们认为他们需要为这样一个微不足道的问题提供帮助.
| 归档时间: |
|
| 查看次数: |
39813 次 |
| 最近记录: |