tuple, bitset
tuple : 是一个数据结构.
tuple类型的成员是固定的, 在初始化时要制出每一个成员.
bitset类是一个模板, 它类似于array类,具有固定的大小.
#include <iostream>
#include <cstdlib>
#include <string>
#include <tuple>
#include <vector>
#include <bitset>
int main()
{
//tuple : 初始化
std::tuple<int, double, std::string> tu1(1, 2.2, "abc");
auto tu2 = std::make_tuple(2, 3.3, "def");
//tu1 = std::make_tuple(2, 3.3, "def"); 都可以;
std::tuple<double, std::string, std::vector<int>> tu3(4.4, "xyz", { 1,2,3,4 });
//使用 std::get<>()来获取对应的参数,
//角标跟数组一样从 0 开始. std::get<放角标>(放名字);
//get 返回的是指定成员的引用, 即左值;
auto x = std::get<1>(tu1);
std::cout << x << " " << std::get<2>(tu1) << " " << std::get<2>(tu3).front() << std::endl;
//相等;
//tuple 的比较只有在两个 tuple的参数一样并且对应的参数类型一样才能进行比较;
std::cout << (tu2 == tu1) << "\n";
//std::cout << (tu1 == tu3); 编译报错;
//bitset : 将其数字转换成对应的二进制;
//bitset<位长度>;
//bitset 初始化;
//bitset支持角标 [];
std::bitset<65> bit1(23004);
//string : 比较特别; 它的第一位是从右边开始的, 所以 bit[0] = 0, bit[size()- 1] = 1;`
std::string str = "101001000";
std::bitset<64> bit2(str);
std::bitset<32> bit3(str, 1, str.size() - 3); //从str[1]开始,str.size() - 3个长度;
std::bitset<32> bit4(str, str.size() - 4); //str的最后4位;
std::cout << bit1 << "\n";
std::cout << bit2[0] << "\n";
system("pause");
return 0;
}
关于tuple 和 bitset 个人觉得做为了解吧, 等用的时候再来深入探究吧.