因此,我有一个向量容器,并生成了一个随机字符串(截至目前,它是
为了使我能够轻松查看大小差异,请使用星号)以通过矢量进行分配。一切都很好,花哨的东西,让一切都可以使用。

当我将向量传递给应该迭代并指定大小的函数时
将向量中的每个元素都转换为新向量,总是会出错。做这个的最好方式是什么?

下面的代码不是我的原始尝试,但是我上课迟到了,必须运行。因此,截至目前,这就是我正在尝试做的事情。

vector<int> siz;
int length = contain.size();
for (vector<string>::iterator i = contain.begin(); i != contain.end(); ++i){
    siz.push_back(contain.size());
}
for (vector<int>::iterator j = siz.begin(); j != siz.end(); ++j){
    cout << *j << endl;
}

最佳答案

您需要获取每个单独元素的大小,而不是容器向量的长度。

您的i变量是容器向量上的迭代器,其本质上用作指向每个元素的指针。在循环的主体中,访问对象i指向的大小,以获取该对象的大小。

vector<int> siz;

for (vector<string>::iterator i = contain.begin(); i != contain.end(); ++i){
    siz.push_back(i->size());
}

关于c++ - 如何遍历 vector 大小并分配给新 vector ?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24066567/

10-09 13:12