我想使用一個容器來存儲字符串s
的迭代器,但我運行它時遇到了段錯誤。正如你在下面看到的,這個錯誤似乎與char temp = **itbegin;
一起出現,這可能意味着我不能通過前面的迭代器賦值。如何正確使用這個迭代器?
爲什麼?我誤用了迭代器嗎?如何正確使用迭代器?
#include <iostream>
#include <vector>
using namespace std;
string reverseVowels(string s);
int main()
{
string s ="hello";
cout << reverseVowels(s);
}
string reverseVowels(string s) {
string::iterator iter = s.begin();
string::iterator iterend = s.end();
vector<string::iterator> iteratorbox;
for(;iter != iterend ; ++iter){
if((*iter) == 'a' &&
(*iter) == 'e' &&
(*iter) == 'i' &&
(*iter) == 'o' &&
(*iter) == 'u'){
iteratorbox.push_back(iter);
}
}
auto itbegin = iteratorbox.begin();
auto itend = iteratorbox.end() ;
--itend;
//for(;itbegin < itend ; ++itbegin, --itend)
{
char temp = **itbegin;
// *(*itbegin) = *(*itend);
// *(*itend) = temp;
}
return s;
}
修正寫'char temp =(* itbegin)[0];' –
您應該添加'#include'使代碼變得可移植。 –