我正在尝试使用容器来存储字符串的迭代器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; …Run Code Online (Sandbox Code Playgroud) #include <iostream>
#include <vector>
int main()
{
std::vector<std::vector<int>> a;
a[0] = {1,2,3,4,5};
a.push_back({12,123,123,1,3,1,23});
size_t size = a.size();
std::cout << size << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
g ++编译器传递了这个程序,但是当我运行它时会出现这个错误
分段故障(核心转储)
怎么解决?如何计算此2D矢量中的所有元素?