質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
コンパイルエラー

コンパイルのフェーズで生成されるエラーです。よく無効なシンタックスやタイプが含まれているとき発生します。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

1回答

2115閲覧

C++でライブラリに関するエラーが出てしまいました。

yuki_nam

総合スコア28

コンパイルエラー

コンパイルのフェーズで生成されるエラーです。よく無効なシンタックスやタイプが含まれているとき発生します。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2022/03/06 14:10

前提・実現したいこと

VscodeでC++のプログラムを書いていたところ見たことのないエラーが出てしまいました。正しく実行できるようにしたいです。

発生している問題・エラーメッセージ

/home/keith/builds/mingw/gcc-9.2.0-mingw32-cross-native/mingw32/libstdc++-v3/include/bits/basic_string.h:1067: std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::reference std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::operator[](std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::reference = char&; std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type = unsigned int]: Assertion '__pos <= size()' failed.

該当のソースコード

C++17

1#include <bits\stdc++.h> 2using namespace std; 3 4int main(){ 5 6 int h,w; 7 cin >> h >> w; 8 9 string a[h]; 10 string b[h+2]; 11 12 13 for(int i=0;i<h;i++){ 14 cin >> a[i]; 15 } 16 17 for(int i=0;i<h+2;i++){ 18 for(int j=0;j<w+2;j++){ 19 if(i == 0 || i == h+1){ 20 b[i][j] = '#'; 21 } 22 if(j == 0 || j == w + 1){ 23 b[i][j] = '#'; 24 } 25 if(i > 0 && i < h+1){ 26 b[i][j] = a[i-1][j-1]; 27 } 28 if(j > 0 && j < w+1){ 29 b[i][j] = a[i-1][j-1]; 30 } 31 } 32 } 33 34 for(int i=0;i<h;i++){ 35 cout << a[i]; 36 cout << endl; 37 } 38 39 return 0; 40}

試したこと

私が初学者というのもありインターネットで調べましたが、これを解決する方法を見つけられませんでした。またbits/stdc++.hに原因があるのかと考えたためincludeするヘッダをiostream,stringの2つに分けましたが同じエラーメッセージが出ました。
このプログラムをコードテストサイトで通したところ正しく表示されました。

補足

今回多分ですがプログラムの内容とは直接関係ないためプログラムの内容については触れなくて大丈夫です。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

c++

1 if(i > 0 && i < h+1){ 2 b[i][j] = a[i-1][j-1]; 3 }

j0 の場合に何が起きると思いますか?

投稿2022/03/06 15:00

arcxor

総合スコア2859

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yuki_nam

2022/03/06 15:02

久しぶりにプログラミングに触れてうっかりしてました。以後気をつけてから質問します。
arcxor

2022/03/06 15:06

> 見たことのないエラーが出てしまいました C++ の STL はエラーメッセージが人間向けではないことで有名です。C++ が吐くエラーメッセージに驚かずに付き合っていく強い心が必要です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問