我尝试使用哈希从链接列表中删除重复项。不是使用dplyr
,而是使用向量来跟踪事件。我运行了一个简单的测试用例,但结果却是我不理解。
我的代码是:
mutate_at(df,"c2",
function(x)
ifelse(x>4,100,x))
我尝试了以下测试用例 2 3 3 4 6.这是链接列表中节点的数据。
我得到的结果就是这个。
unordered_map
实际结果应该是
class Solution {
public:
Node* removeDuplicates(Node *head) {
vector<int> vec{10000 , 0};
auto tmp = head;
auto tmp2 = tmp;
while (tmp) {
vec[tmp->data]++;
cout << "Data : " << tmp->data << " counter " << vec[tmp->data] << "\n";
if (vec[tmp->data] > 1) {
tmp2->next = tmp2->next->next;
}
tmp2 = tmp;
tmp = tmp->next;
}
return head;
}
答案 0 :(得分:3)
vector<int> vec{10000, 0};
使用带有10000
的构造函数,创建一个包含两个元素0
和std::initializer_list
的向量:
vector(std::initializer_list<T> init, const Allocator& alloc = Allocator());
您很可能需要vector<int> vec(10000, 0);
。这将使用
0
初始化的10000个元素的向量。
vector(size_type count, const T& value, const Allocator& alloc = Allocator());
当非聚合类类型为
T
的对象被列表初始化,使得[dcl.init.list]指定根据本小节中的规则执行重载解析时,重载解析会在两个方面选择构造函数阶段:
- 最初,候选函数是类
T
的初始化器列表构造函数([dcl.init.list]),参数列表包括作为单个参数的初始化器列表。- 如果未找到可行的初始值设定项列表构造函数,则再次执行重载解析,其中候选函数为类
T
的所有构造函数,并且参数列表由初始值设定项列表的元素组成。 li>