感谢
答案 0 :(得分:1)
如果你正在寻找chars的向量,其中true为'1'而false为'0',你可以简单地创建你的bool向量大小的新char向量,并通过填充它来对应bool char:
std::vector<bool> bools{ 1,1,1,0,1,0 };
std::vector<char> chars(bools.size());
for (size_t i = 0; i < chars.size(); ++i)
chars[i] = bools[i] ? '1' : '0';
答案 1 :(得分:1)
您可以使用std::transform
和后插入器来执行此操作
作为一个最小的工作示例:
#include<algorithm>
#include<iterator>
#include<vector>
int main() {
std::vector<bool> bools{ 1,1,1,0,1,0 };
std::vector<char> chars;
std::transform(
bools.cbegin(), bools.cend(),
std::back_inserter(chars),
[](auto b) { return b ? '1' : '0'; });
}
答案 2 :(得分:0)
两种解决方案: 1。 这不是一个单独的解决方案,只是Killzone Kid在C ++ 11方言中的变体,其中range-for更具惯用性。
std::vector<bool> vbool = { 0, 1, 0, 1 };
std::vector<char> vchar(vbool.begin(), vbool.end());
2。 我在这里滥用你没有指定你想要的真值和假值,所以我将使用0和1(而不是'0'和'1')。如果你想移动它,可以随意为每个元素添加'0',因为在C ++的任何字符集中数字都保证是连续的。
DataGridComboBoxColumn
我会选择第二个,因为这是更惯用的。