如何初始化 std::map<int, int> 键递增但值相同?
How to initialize std::map<int, int> with key incrementing but same value?
如何初始化映射,以使键是0到10,但是每个值都设置为某个int,例如100?
m[0] = 100;
m[1] = 100;
m[2] = 100;
...
听起来您真的想要一个向量,您可以将其初始化为默认值,例如
std::vector<int> m(10, 100);
如果您真的想使用地图,则可以使用良好的循环,例如
std::map<int, int> m;
for (int i=0; i<10; ++i){
m[i] = 100;
}
std::map
不提供这样的构造函数,但是如果您经常这样做以至于需要快速的方法,则具有(for)循环的简单模板功能应该足够:
#include <iostream>
#include <map>
template <class T, class Y>
std::map<T, Y> get_map(T size, Y val)
{
std::map<T, Y> m;
for (T i = 0; i != size; ++i)
m[i] = val;
return m;
}
int main()
{
auto m = get_map(10, 100);
for (const auto& e : m)
std::cout << e.first << " - " << e.second << 'n';
std::cout << std::flush;
return 0;
}
输出:
0 - 100
1 - 100
2 - 100
3 - 100
4 - 100
5 - 100
6 - 100
7 - 100
8 - 100
9 - 100
相关文章:
- 为什么在全局范围内使用"extern int a"似乎不行?
- int(c) 和 c-'0' 之间的区别。C++
- 从"int*"强制转换为"unsigned int"会丢失精度错误
- 为什么野牛仍在使用"int yylex(void)",却找不到"int yylex(YYS
- 有符号的int和int-有没有一种方法可以在C++中区分它们
- 请解释这句话(cout<<1+int((a<b)^((b-a)&1) )<<endl
- 是否可以从int转换为enum类类型
- 不能在初始值设定项列表中将非常量表达式从类型 'int' 缩小到'unsigned long long'
- 向量 <int> a {N, 0} 和 int arr a[N] = {0} 的时间复杂度有什么区别
- 'short int'持有的值溢出,但"自动"不会溢出?
- 如何在C++中将一个无符号的 int 转换为两个无符号的短裤?
- 调用'begin(int [n])'没有匹配函数
- 没有显式声明的int[]中的foreach
- 在c++中访问int到类对象的映射时出错
- 为什么我无法更改"set<set>"循环中的值<int>
- EASTL矢量<向量<int>>连续的
- 为什么将此对向量&lt; map&lt; int,int&gt;&gt;中的地图进行更新.失败
- 如何加入向量&lt; int&gt;到C 中的单个INT
- 是numeric_limits&lt; int&gt; :: is_modulo从逻辑上矛盾
- 'structstd::对<int,int>'没有名为'push_back'