我正在尝试根据是否满足某些参数,将项目添加到作为类中私有变量的地图中。当我尝试对std::map
或[]
运算符使用插入函数时,什么也没发生。我什至没有出错。在调试期间,代码像一切正常一样执行,但是映射保持为空。
我尝试了多种插入地图的方法,包括[]运算符和不同的插入参数。
class foo {
private:
std::map<std::string, int> map;
public:
void bar();
};
在cpp文件中:
void foo::bar() {
if(condition)
map.insert(std::make_pair("string", 1));
}
在编译器中或调试期间没有错误消息或警告。
答案 0 :(得分:-1)
如果基本的STD映射用法可行,那么问题可能出在您的condition
实现上
#include <iostream>
#include <map>
class Foo {
std::map<std::string, int> map;
public:
void bar();
void print();
};
void Foo::bar() {
// if (condition) // weird condition causing failure
map.insert(std::make_pair("string", 1));
}
void Foo::print() {
std::cout << map.size() << std::endl;
std::cout << map.at("string") << std::endl;
}
int main(void) {
Foo foo;
foo.bar();
foo.print();
}