小编Dmi*_*sov的帖子

Lua:删除重复的元素

我在lua有一张桌子

test = {1,2,4,2,3,4,2,3,4,"A", "B", "A"}

我想删除表中的所有重复元素.
输出应该是

test = {1,2,4,3,"A","B"}

编辑:

我的尝试:

> items = {1,2,4,2,3,4,2,3,4,"A", "B", "A"}
> flags = {}
> for i=1,table.getn(items)  do
if not flags[items[i]] then
      io.write(' ' .. items[i])
      flags[items[i]] = true
   end
>> end
 1 2 4 3 A B>

现在工作正常.感谢您的回答和评论.

lua lua-table

8
推荐指数
1
解决办法
9696
查看次数

C++非抽象析构函数继承

我以前见过这个问题,但不清楚或与我遇到的情况相同.

我有一个抽象的基类.它有一个受保护的构造函数和一个析构函数.它由几个完整的类型继承,它们也有公共构造函数和析构函数.我遇到的问题是,如果对象被基类型引用,则删除对象不会调用子析构函数.

class Tree
{
protected:
        Tree(){ }
public:
        ~Tree(){ }
};

class OakTree : public Tree
{
public:
        OakTree(){ }
        ~OakTree(){ }
};

vector<Tree*> Trees; // Store objects using the base type
Trees.push_back(new OakTree()); // Create derived object
delete Trees[0]; // OakTree desctructor does not get called
Run Code Online (Sandbox Code Playgroud)

如何调用OakTree析构函数?我已经尝试将所有析构函数标记为虚拟,但这不起作用.基类析构函数不能是抽象的(这将解决调用问题,但不能解决删除问题).

c++ inheritance c++11

1
推荐指数
1
解决办法
111
查看次数

标签 统计

c++ ×1

c++11 ×1

inheritance ×1

lua ×1

lua-table ×1