gpt4 book ai didi

c++ - 如何在 C++ 中存储从 vector `pop_back()` 获得的值?

转载 作者:太空狗 更新时间:2023-10-29 23:32:26 34 4
gpt4 key购买 nike

我不确定如何转换从 vectorpop_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(),但它会抛出一个错误,说明 不允许从 'void' 到 'int' 的 C 样式转换

我可以知道是否有一种标准方法来存储 pop_back() 函数的值吗?

最佳答案

这听起来和返回值一样流行。但事实并非如此。标准规定 vector::pop_back 应该删除最后一个值,没有返回值。

你可以这样做:

auto val = a.back();
a.pop_back();

关于c++ - 如何在 C++ 中存储从 vector `pop_back()` 获得的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40500821/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com