UVaOJ490旋转句子

本文介绍了一种不使用数组而利用vector实现二维字符矩阵旋转的方法。通过读取输入流中的字符串并将其逐行存储为vector,然后进行矩阵转置以达到旋转效果,并输出旋转后的结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include <iostream>
#include <string>
#include <vector>
#include <sstream>

int main()
{
 std::string s;
 std::vector<std::vector<char>> orig,after_rot;
 while(getline(std::cin,s))
 {
  std::vector<char> cvec;
  std::istringstream ist(s);
  char c;
  for(size_t i = 0;i != s.size();i++)
  {
   c = ist.get();
   cvec.push_back(c);
  }
  orig.push_back(cvec);
 }
 int orig_row = orig.size();
 size_t col_max =0 ;
 for (size_t i = 0;i != orig_row;i++)
 {
  if (col_max < orig[i].size())
   col_max = orig[i].size();
 }
 for(size_t rows = 0;rows != col_max;rows++)
 {
  std::vector<char> cvec;
  for(int i = orig_row-1;i >= 0 ;i--)
  {
   if(orig[i].size() > rows)
    cvec.push_back(orig[i][rows]);
   else
    cvec.push_back(' ');
  }
  after_rot.push_back(cvec);
 }
 for(size_t loop = 0;loop != after_rot.size();loop++)
 {
  for(size_t col = 0;col != after_rot[loop].size();col++)
   std::cout << after_rot[loop][col];
  std::cout << std::endl;
 }
 return 0;
}

没有使用数组,用vector实现的。ist >> c会忽略掉空格和换行符,因此采用c = ist.get()避免空格被吃掉。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值