gpt4 book ai didi

c++ - 将对象插入列表

转载 作者:行者123 更新时间:2023-11-30 02:32:14 25 4
gpt4 key购买 nike

任何善良的灵魂都知道如何更正以下代码

“d1.insert(d1.begin(), 它[0]);”所以输出如下:

程序将运行成功并显示:1 2 3 4 5 6 7 8 9 10

#include <list>
#include <deque>
#include <iostream>

using namespace std;

template<typename T> ostream & print(const T & start, const T & end)
{
T tmp = start;
for(; tmp != end; ++tmp)
{
cout<< *tmp<< " ";
}
return cout;
}
class A
{
public:
int a;
public:
A(int a):a(a) {}
A(const A & a) {}
};

ostream & operator<<(ostream & c, const A & o)
{
c<<o.a;
return c;
}

int main()
{
int tab[]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
list<A> l1(tab, tab+10);
deque<A> d1;
list<A>::iterator it;
for(it = l1.begin(); it != l1.end(); ++it)
{
d1.insert(d1.begin(), it[0]);
}
print(d1.begin(), d1.end())<<endl;
return 0;
}

最佳答案

从代码看来,您想要插入到 std::deque 而不是 std::list(您已经将数组值插入列表 l1)。您可以按照相同的过程插入到 std::deque:

int main(void) {
int tab[] = { 1,2,3,4,5,6,7,8,9,10 };
std::list<int> l1(tab, tab + 10);
std::deque<int> d1(tab, tab + 10);
}

我在这里简单地将 A 替换为 int,因为前者看起来只是 int 的包装器。

或者你可以这样做,

int main(void) {
int tab[] = { 1,2,3,4,5,6,7,8,9,10 };
std::list<int> l1(tab, tab + 10);
std::deque<int> d1;

auto it = d1.begin();
d1.insert(it, l1.begin(), l1.end());
}

关于c++ - 将对象插入列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36659206/

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