相关疑难解决方法(0)

在STL映射中,使用map :: insert比[]更好吗?

不久前,我与一位同事讨论了如何在STL 地图中插入值.我更喜欢 map[key] = value; 因为它感觉自然而且阅读清晰,而他更喜欢 map.insert(std::make_pair(key, value))

我刚刚问他,我们都不记得插入更好的原因,但我确信这不仅仅是一种风格偏好,而是有一个技术原因,如效率.在SGI STL参考只是说"严格地说,这个成员函数是不必要的:它的存在只是为了方便."

任何人都可以告诉我这个理由,还是我只是梦想有一个?

c++ stl stdmap map

199
推荐指数
8
解决办法
16万
查看次数

C++:如何传递通用函数名?

我正在用c ++构建一个程序,用户可以设置一个在达到用户定义的条件时调用的函数.我对c ++只有一点经验.

我知道如何在python中执行此操作.您只需定义函数并将所述函数的名称放入结构中(我总是使用字典).当你去使用这个功能时,你会拨打一个类似于的电话:

methods = { "foo" : foo, "bar" : bar } 
choice = input("foo or bar? ")
methods[choice]()
Run Code Online (Sandbox Code Playgroud)

关于如何在c ++中解决这个问题而不必对所有内容进行硬编码的任何想法?

c++ function

13
推荐指数
3
解决办法
638
查看次数

std :: map索引和插入调用之间的区别

index重载运算符和std :: map的insert方法调用之间有什么区别?

即:

some_map["x"] = 500;
Run Code Online (Sandbox Code Playgroud)

some_map.insert(pair<std::string, int>("x", 500));
Run Code Online (Sandbox Code Playgroud)

c++ stl hashmap map

12
推荐指数
3
解决办法
4979
查看次数

在将对象添加到std :: list时,析构函数调用了对象

我有一个Foo对象,一个std :: list包含它的实例.我的问题是,当我向列表中添加一个新实例时,它首先调用ctor,然后调用dtor.然后是另一个实例上的dtor(根据this指针).

单个实例被添加到列表中,但由于调用了dtor(及其父项),因此无法按预期使用该对象.

下面是一些简化的代码来说明问题:

#include <iostream>
#include <list>

class Foo
{
public:
    Foo()
    { 
        int breakpoint = 0;
    }
    ~Foo()
    { 
        int breakpoint = 0;
    }
};

int main()
{
    std::list<Foo> li;
    li.push_back(Foo());
}
Run Code Online (Sandbox Code Playgroud)

c++ constructor stdlist

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

标签 统计

c++ ×4

map ×2

stl ×2

constructor ×1

function ×1

hashmap ×1

stdlist ×1

stdmap ×1