我想为 rar 存档编写一系列密码(实验室需要)。是否有任何 apishki 以便我至少具有打开存档和输入密码的功能?我在 Windows 上用 C++ 编写。如果这是一个措辞不当的问题,我深表歉意。
主页
/
user-282936
WhoAreYou's questions
给定向量在空间中的坐标,求其方向与 XOY 平面的夹角。你能解释一下如何解决这个问题的算法吗?
为 unordered_set 创建了我的自定义 key_eq。但由于某种原因,他根本不使用这个函子。这是无序集合的某种特征,还是我做错了什么?
template <typename T>
class equal_for_me {
public:
bool operator() (const T & lval,const T & rval) const {
if (lval->x_ == rval->x_)
if (lval->y_ == rval->y_)
if (lval->z_ == rval->z_) {
cout << "is equal" << endl;
return 0;
}
cout << "is not equal" << endl;
return 0;
}
};
int main() {
unordered_set<shared_ptr<point>,std::hash<shared_ptr<point>>,equal_for_me<shared_ptr<point>>> data;
data.insert(std::make_shared<point>(13.0,41.0,51.0));
data.insert(std::make_shared<point>(321.0,33.0,12.0));
data.insert(std::make_shared<point>(123.0,321.0,31.0));
data.insert(std::make_shared<point>(12.0,31.0,31.0));
data.insert(std::make_shared<point>(13.0, 41.0, 51.0));// по хорошему такой элемент уже есть и не должен создаваться дубликат
for (auto i : data) {
cout << i << " : " << i->x_ << endl;
}
return 0;
}
为什么从未调用equal_for_me?
我想实现自己的向量,以便更好地理解这个容器的操作。您能解释一下向量中的内存是如何“保留”的吗?我怀疑malloc在那里使用,然后在扩展容器时放置 new。还有一个假设是,内存只是由默认构造函数初始化,然后,在扩展时,通常会发生通常的赋值。
PS 因为我才编程一年,源代码很难读
为了更好地理解容器的结构,我决定全部实现。现在我在std::deque上遇到了一个问题,我了解双连接队列的原理,但我不明白 std 卡组是如何工作的,即:如何在 O(1) 中从两侧添加元素同时具有像这样或 O(1) 的随机访问速度。所有熟悉的程序员都说标准卡组是作为双向链表实现的,其中的元素是固定大小的块,但是随机访问 O(1) 是如何实现的呢?这是一个这样的问题。