我需要在unsigned char
内部的std::vector
中使用std::map
的帮助。
这就是我声明std::map
的方式:
std::map<int, std::vector<unsigned char>> DataMap;
当我尝试为std::vector
分配std::map
时出现问题。
it->first
来自另一个std::map
,因为此代码位于循环内。
std::vector<unsigned char> charHolder;
for(int i = 0; i < 10; i++)
{
charHolder.push_back('2');
}
DataMap.insert(std::pair<int, std::vector<unsigned char>(it->first, charHolder));
错误:
模板参数2无效
我需要将char[]
数组分配给2
中的std::map
位置。我尝试过一个数组,但是没有运气。
答案 0 :(得分:1)
您缺少一个DataMap.insert (std::pair<int, std::vector<unsigned char>>(it->first, charHolder));
^
字符
DataMap.insert ({it->first, charHolder});
您可以使用统一初始化程序,如下所示:
sap.ui.define([
".../formatter",
"sap/ui/model/json/JSONModel"
], function(formatter) {
"use strict";
QUnit.module("someFunction");
QUnit.test("Should do this and that", function(assert) {
formatter.getModel = function() {
return new JSONModel({ "yesno": "<whatever>" });
};
var sResult = formatter.someFunction("abc");
assert.equal(sResult, "xyz");
}
});
答案 1 :(得分:0)
将数据获取到地图的许多有趣且多样化的方式中的一些:
std::map<int, std::vector<unsigned char>> DataMap;
void add(int i, std::vector<unsigned char> v)
{
// efficient move versions
DataMap.emplace(i, std::move(v));
DataMap[i] = std::move(v);
DataMap.insert(std::make_pair(i, std::move(v)));
DataMap.emplace(std::piecewise_construct,
std::make_tuple(i),
std::forward_as_tuple(std::move(v)));
// less efficient copy versions
DataMap.emplace(i, v);
DataMap[i] = v;
DataMap.insert(std::make_pair(i, v));
DataMap.emplace(std::piecewise_construct,
std::make_tuple(i),
std::make_tuple(v));
}