gpt4 book ai didi

c++ - 如何从 vector 中提取第一个元素并在循环中将 vector 大小减少 1

转载 作者:行者123 更新时间:2023-11-27 23:57:05 24 4
gpt4 key购买 nike

string line= "";
vector<string> tokens;
//populate the vector 'tokens'

//loop through vector 'tokens' until it becomes empty
{
//extract out 'line' containing the first element of the vector.
//reduce the size of 'tokens' by one through deleting the first element
}
//use 'line' string one by one in the subsequent code

假设“tokens”包含两个元素,例如

cat, dog, bull

在第一次迭代中,我想从 vector 中提取“猫”并将其大小减小 1。它现在将包含:

dog, bull

现在,我想在循环外的后续代码中使用这个提取的元素“cat”(存储在字符串“line”中)。下次我想选择“狗”并使 vector 仅包含

bull

.等等。提前感谢您的想法!

最佳答案

当为了清空容器而遍历容器时,只要容器不为空,就更容易简单地进行迭代。

#include <iostream>
#include <string>
#include <vector>

int main()
{
std::vector<std::string> tokens = {"cat", "dog", "bull"};
while(tokens.empty() == false)
{
// Extract the data from first element in the list
auto line = std::move(tokens.front());

// Pop the moved element from the vector
tokens.erase(tokens.begin());

// Do work with 'line'
std::cout << line << '\n';
}

return 0;
}

也就是说,从 vector 的前面移除元素是非常低效的,因为所有后面的元素都必须向上移动。考虑从后面移除元素。

关于c++ - 如何从 vector<string> 中提取第一个元素并在循环中将 vector 大小减少 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41857493/

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