我不确定如何转换从 --- 的 vector
pop_back()
函数获得的值。下面是一个简单的代码来说明问题。
#include<vector>
#include<iostream>
using namespace std;
int main()
{
vector<int> a,b;
int val;
a.push_back(1);
a.push_back(2);
a.push_back(3);
a.push_back(4);
for(int i=0; i<4; i++)
{
val = a.pop_back();
b.push_back(val);
}
vector<int>::iterator v = b.begin();
while( v != b.end())
{
cout << *v << " ";
v++;
}
return 0;
}
这是我得到的错误。
pushback.cpp:18:9: error: assigning to 'int' from incompatible type 'void'
val = a.pop_back();
^ ~~~~~~~~~~~~
1 error generated.
我也尝试过铸造; (int)a.pop_back()
,但它会引发错误说明 C-style cast from 'void' to 'int' is not allowed
。
我可以知道是否有标准方法来存储 pop_back()
函数的值?
原文由 Ébe Isaac 发布,翻译遵循 CC BY-SA 4.0 许可协议
它可能听起来像返回值一样流行。但实际上并没有。标准说
vector::pop_back
应该删除最后一个值,没有返回值。你可以做: