甘いもの好きの日記

甘いもの好きの日記

ガラクタみたいなプログラム初心者。いつでもHelp meで新人戦。

Amebaでブログを始めよう!

 

前回

 

 

 

から続きまして

 

 

 

大体ひな形的なものは前回でできたのでそれの応用です。

いざ!!

 

 

 

#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main(void){
 
    //変数定義
    int H,W,N,x,y;
    std::cin >> H >> W >> N;
    
     //文字盤作成 std::vector<型> 変数名(配列サイズ,初期値)
    std::vector<string> dial(H);
    for(int i = 0; i < H ; i++ )
    {
        //vctor配列i行目に文字列を設定
        std::cin >> dial[i];
    }
    
    //座標にアクセスしてy行目のx文字目を#に置き換え
    for(int j = 0; j < N; j++)
    {
        std::cin >> y >> x;
        dial[y].replace(x,1,"#");
        //std::cout << dial[y][x] << std::endl;
    }
    
    for(int i = 0; i < H; ++i)
    {
        std::cout << dial.at(i) << std::endl;
    }
    
    return 0;
}

 

<今回の反省>

今回は解説も見たのでそれも含めて

・vectorわからん泣

・”と・・・’。

 

グーグル先生に聞きました。

そして大きな?ミス。

 

今回は文字盤を作成して、指定された座標の文字を書き換えるのですが、

解説では

dial[y][x] = '#';

で、自分は

dial[y].replace(x, 1, "#");

 

自分の奴でうまくいったのですが、実は解説と同じやり方を最初にやっていたのに、

 

dial[y][x] = "#";

 

でエラーになり、よくわからずに諦めていました・・・・・・・・・・・。

 

 

'だったのか・・・。

 

一応文字列操作を参考にできたのでよしとします(笑)

 

vectorとか勉強しなきゃなあ。