在打印矢量内容时添加空格和新行

时间:2014-01-14 13:54:45

标签: c++ vector iterator

一个小问题。如何添加空格和新的线条符号,以使效果看起来像那样?

ACCT
 CCTG
  CTGA

vector<string>::reverse_iterator it;
   for( it=vec.rbegin(); it!=vec.rend(); ++it )
   {

      cout<<*it;
      cout<<endl;
      cout<<" ";

   }

我已经尝试过这种方式,但这种转变只是在第一个元素之后,就像那样:

ACCT
 CCTG
CTGA

非常感谢您的帮助!

3 个答案:

答案 0 :(得分:6)

使用这个:

std::string space = "";

for(auto it = vec.rbegin(); it != vec.rend(); ++it ) {
    std::cout << space << *it << std::endl;
    space += " ";
}

这个不会在新行上输出最后的空格。

答案 1 :(得分:5)

vector<string>::reverse_iterator it;
   string space="";
   for( it=vec.rbegin(); it!=vec.rend(); ++it )
   {

      cout<<*it;
      cout<<endl;
      space += " ";
      cout<<space;

   }

答案 2 :(得分:3)

size_t spaces = 0;
for (auto it = vec.rbegin(); it != vec.rend(); ++it)
    cout << string(spaces++, ' ') << *it << '\n';