在标准C中使用pair和make_pair

mah*_*ood 0 c utility std-pair

有没有办法在C中使用std :: pair和std :: make_pair?似乎它们适用于C++.

就像我用的那样

#include "utility"
Run Code Online (Sandbox Code Playgroud)

它说它找不到这样的文件

thansk任何建议

Ale*_*x B 6

它只是C++.C没有模板,因此您必须使用宏来自己动画以在某种程度上模拟它们,例如:

#define PAIR_TYPE(type1, type2)\
    typedef struct {\
        type1 first;\
        type2 second;\
    }
#define MAKE_PAIR(val1, val2) {val1, val2}

PAIR_TYPE(int, float) mypair;
mypair p = MAKE_PAIR(1, 12.0);
Run Code Online (Sandbox Code Playgroud)

但它真的不值得麻烦,结果代码比仅使用普通结构更冗长,更不明显.