我如何才能添加到表中最多10个用户? 因为我在txt中保存了scoretbl,而且这个文件有100行:/所以我想只保存10个用户。
我不知道如何检查表格中是否有用户名,并且不在表格中添加此用户或不添加此用户名并添加?
示例:
class Pen {
struct Private;
Private *pImpl = nullptr;
public:
Pen() noexcept = default;
Pen(Pen &&other) noexcept : pImpl{std::exchange(other.pImpl, {})} {}
Pen(const Pen &other) : pImpl{new Private{*other.pImpl}} {} // assumes valid `other`
Pen &operator=(Pen &&other) noexcept {
Pen(std::move(other)).swap(*this);
return *this;
}
Pen &operator=(const Pen &other) {
Pen(other).swap(*this);
return *this;
}
void swap(Pen &other) noexcept {
using std::swap;
swap(pImpl, other.pImpl);
}
int width() const { return pImpl->width; }
// ...
};
// upd:也许是修复用户名?
local scoretbl = {}
local num = 0
for i=1, 10 do
table.insert(scoretbl,{'Name '..i, 100 + num})
num = num + 100
end
local function AddToTable(name, score)
if table.HasValue(scoretbl,name) then return end // hmm its not work ?
table.insert(scoretbl,{name, score})
end
AddToTable('User 55', 5454)// 11 user
AddToTable('User 55', 5454)// check: only one username in table
AddToTable('User 32', 5454)// 12 user
local function ShowOnly10()
table.sort( scoretbl, function( a, b ) return a[2] > b[2] end )
//table.remove(scoretbl,#scoretbl) remove last index in table, if i need only 10 value, i need delete in cycle ?
for k, v in pairs(scoretbl) do
print(k ,v[1], v[2])
end
end
ShowOnly10()
答案 0 :(得分:1)
我建议您使用Lua的哈希表,SELECT * FROM table WHERE REPLACE(columnName, ":", "") LIKE "like_expression";
和v.name
比v.score
和v[1]
更容易阅读。
函数v[2]
不存在。你必须自己写。
如果只想打印前十个元素,则只应迭代前十个元素(如果长度少于十个元素,则应该超过表格的长度)。
Lua中的行注释以table.HasValue
开头,而不是--
。
//