如何在集合的元素之间打印逗号

时间:2018-03-28 15:28:08

标签: c++ set comma

我正在进行一项任务,我做了一个功能来获得功率设置并且它工作但是如果这样的设置:

  

{1,2,3}

打印出来:

  

{{},{1,},{2,},{1,2,},{3},{1,3},{2,3},{1,2,3}}

我无法删除这些逗号:

  

{{},{1},{2},{1,2},{3},{1,3},{2,3},{1,2,3}}

此功能的源代码:

__init__

2 个答案:

答案 0 :(得分:0)

解决此问题的一种方法是跟踪您是否打印了一组中的第一个数字。而不是:

for (int j = 0; j < set1_length; j++ ) {
    if(i & (1<<j)) {
        cout << set1[j];
        if (j < set1_length - 1) cout << ",";
    }
}

您可以使用标记仅从集合中的第二个数字开始打印逗号:

bool first = true;
for (int j = 0; j < set1_length; j++ ) {
    if(i & (1<<j)) {
        if (first) {first = false;}
        else {cout << ",";}
        cout << set1[j];
    }
}

答案 1 :(得分:-1)

检查你的if语句:

if (j < set1_length && (i & (1 << (j+1)))) cout << ",";