相关疑难解决方法(0)

使用逗号C++打印列表

我知道如何用其他语言来做这件事,而不是C++,我不得不在这里使用它.

我有一组字符串,我打印到列表中,并且每个字符串之间需要逗号,但不是逗号.例如,在java中,我会使用stringbuilder,并在构建字符串后删除逗号.我如何用C++做到这一点?

auto iter = keywords.begin();
for (iter; iter != keywords.end( ); iter++ )
{

    out << *iter << ", ";
}
out << endl;
Run Code Online (Sandbox Code Playgroud)

我最初尝试插入此块来执行此操作(在此处移动逗号打印)

if (iter++ != keywords.end())
    out << ", ";
iter--;
Run Code Online (Sandbox Code Playgroud)

我讨厌小东西把我绊倒的时候.

编辑:谢谢大家.这就是我在这里发布这样的东西的原因.这么多好的答案,并以不同的方式解决.经过一个学期的Java和汇编(不同的类),不得不在4天内完成一个C++项目,这让我陷入了困境.我不仅得到了答案,还有机会思考解决这类问题的不同方法.真棒.

c++ pretty-print

50
推荐指数
9
解决办法
2万
查看次数

在顶部或底部测试循环?(而与之相比)

当我在大学(80年代中期)学习CS时,不断重复的一个想法是总是写出在顶部(而不是......)而不是在底部(做...同时)测试的循环.环.这些概念通常以对研究的参考作为后盾,这些研究表明,在顶部测试的循环在统计上比其底部测试对应物更可能是正确的.

结果,我几乎总是编写在顶部测试的循环.如果它在代码中引入了额外的复杂性,我不会这样做,但这种情况似乎很少见.我注意到一些程序员几乎专门编写在底部测试的循环.当我看到像这样的结构:

if (condition)
{
    do
    {
       ...
    } while (same condition);
}
Run Code Online (Sandbox Code Playgroud)

或者反过来(if在里面while),它让我想知道他们是否真的以这种方式编写它,或者if当他们意识到循环没有处理null情况时他们添加了语句.

我做了一些谷歌搜索,但没有找到任何关于这个主题的文献.你们(和女孩们)如何写你的循环?

language-agnostic loops while-loop do-while

23
推荐指数
9
解决办法
1万
查看次数

Python等效的C编程技术(while循环)

在C编程语言中,我经常做以下事情:

while ((c = getch()) != EOF) {
 /* do something with c */
}
Run Code Online (Sandbox Code Playgroud)

在Python中,我没有发现任何类似的东西,因为我不允许在evaluate表达式中设置变量.我通常最终必须设置两次评估表达式!

c = sys.stdin.read(1)
while not (c == EOF):
 # Do something with c
 c = sys.stdin.read(1)
Run Code Online (Sandbox Code Playgroud)

在我试图找到更好的方法时,我找到了一种只需要设置和评估表达式一次的方法,但这变得更加丑陋......

while True:
 c = sys.stdin.read(1)
 if (c == EOF): break
 # do stuff with c
Run Code Online (Sandbox Code Playgroud)

到目前为止,我已经针对我的一些情况采用了以下方法,但这对于常规while循环来说远非最佳...:

class ConditionalFileObjectReader:
 def __init__(self,fobj, filterfunc):
  self.filterfunc = filterfunc
  self.fobj = fobj
 def __iter__(self):
  return self
 def next(self):
  c = self.fobj.read(1)
  if self.filterfunc(c): raise StopIteration
  return c

for c in ConditionalFileObjectReader(sys.stdin,lambda c: …
Run Code Online (Sandbox Code Playgroud)

c python

11
推荐指数
2
解决办法
830
查看次数

do-while声明

可能重复:
什么时候适当?

有人会介意告诉我这两个陈述之间的区别是什么,何时应该使用另一个陈述?

var counterOne = -1;

do {
    counterOne++;
    document.write(counterOne);
} while(counterOne < 10);
Run Code Online (Sandbox Code Playgroud)

                                                                                 

var counterTwo = -1;

while(counterTwo < 10) {
    counterTwo++;
    document.write(counterTwo);
}
Run Code Online (Sandbox Code Playgroud)

                                                          http://fiddle.jshell.net/Shaz/g6JS4/

在这个时刻,我没有看到do声明的重点,如果它可以在声明中没有指定它的情况下完成while.

javascript do-while

8
推荐指数
2
解决办法
9829
查看次数

什么时候循环比while循环更好?

这是一个非常主观的问题,所以我会更具体.有没有时间do-while循环比正常的while循环更好的编码风格?

例如

int count = 0;
do {
   System.out.println("Welcome to Java");
   count++;
} while (count < 10);`
Run Code Online (Sandbox Code Playgroud)

在评估do语句(也就是强制do语句至少运行一次)之后检查while条件似乎没有意义.

对于像我上面的例子那样简单的东西,我会想象:

int count = 0; 
while(count < 10) { 
   System.out.println("Welcome to Java"); count++;
}
Run Code Online (Sandbox Code Playgroud)

通常被认为是以更好的写作风格写成的.

任何人都可以为我提供一个工作示例,说明什么时候将do-while循环视为唯一/最佳选择?你的代码中有do-while循环吗?它起什么作用?你为什么选择do-while循环?

(我有一种深刻的感觉,do-while循环可能在编码游戏中有用.如果我错了,请纠正我,游戏开发者!)

java loops while-loop do-while

5
推荐指数
2
解决办法
6903
查看次数

C++时while和do之间的区别?

我希望有人能解释一下C++中的while和do之间的区别

我刚开始学习C++并且使用这段代码我似乎得到了相同的输出:

int number =0;

while (number<10)
{
cout << number << endl;
number++
}
Run Code Online (Sandbox Code Playgroud)

而这段代码:

int number=0;

do
{
cout << number << endl;
number++
} while (number<10);
Run Code Online (Sandbox Code Playgroud)

这两个计算中的输出都是相同的.所以似乎没有区别.我试图寻找其他的例子,但他们看起来很难理解,因为它包含了数学上的东西和其他我尚未学到的东西.我的书也对我的问题给出了一种迷幻的答案.

是否有一个更简单的例子来显示这两个循环之间的区别?

我很好奇

c++ loops while-loop

2
推荐指数
2
解决办法
3万
查看次数

哪个循环在C中更快?while循环或do-while循环

在某些情况下,我们可以互换使用while循环或do-while循环.我的一位朋友告诉我,这种情况我们应该使用do-while循环.因为它比同时更快.任何人都可以给我证明吗?

c loops while-loop do-while

0
推荐指数
2
解决办法
6409
查看次数

while和do-while循环的区别

有人可以解释有两种不同类型的while循环的目的吗?我是编程新手.如果可能的话,还提供带有正确while循环的示例情况.

我理解如何使用while循环.这就是我所做的:

bool myBool = true;
int i = 0;

while (myBool) {
  if (i > 10) {
      myBool = false;
  }
  i = i + 1;
}
Run Code Online (Sandbox Code Playgroud)

c++ loops while-loop do-while

-3
推荐指数
1
解决办法
4269
查看次数