前提・実現したいこと
文字列にinsert関数を使って文字を足したいです。
文字はvector配列に格納されています。
実現できない場合は理由を知りたいです。
発生している問題・エラーメッセージ
長文のエラーコードが発生しているので一部を抜粋します。
hello2.cpp:10:29: error: no matching function for call to 'std::__cxx11::basic_string<char>::insert(int, __gnu_cxx::__alloc_traits<std::allocator<char>, char>::value_type&)'
10 | s.insert(0,vec.at(n));
1534 | insert(const_iterator __p, size_type __n, _CharT __c)
1578 | insert(const_iterator __p, _InputIterator __beg, _InputIterator __end)
該当のソースコード
#C++
include <bits/stdc++.h>
using namespace std;
int main(){
int n;
string s;
cin>>n>>s;
vector<char> vec(n);
for(int i=0; i<n; i++) cin>>vec.at(i);
for(int i=0; i<n; i++){
s.insert(0,vec.at(n));
}
cout<<s<<endl;
}
試したこと
太字にした部分を
s=vec.at(i)+s;
に変えると私が求めたい結果を得られます。
s.insert(0,vec.at(i))
はinsertの中のc.at(i)が文字として読み取られないのでしょうか。
補足情報(FW/ツールのバージョンなど)
Visual Studio Codeで実行しました。
プログラミングの学習を始めたばかりです。
わかりやすく説明していただけると嬉しいです。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。