方法一:利用insert命令。
for(i = 0; i<nums.size();i++){
a.insert(map<int,int>::value_type(nums[i], i));
}
方法二:利用陣列。
for(i = 0; i < nums.size(); i++){
a[nums[i]] = i;
下面我們來看一下其具體效果:
#include <iostream>
#include <map>
#include <vector>
using namespace std;
int main()
{
vector<int> nums;
map<int, int> a;
nums.push_back(3);
nums.push_back(11);
nums.push_back(15);
for(int i=0; i<nums.size(); i++){ // vector容器遍歷
cout<<nums[i]<<" | ";
cout<<endl;
cout<<"------方法一-----"<<endl;
for(int i = 0; i<nums.size();i++){
map<int, int>::iterator iter; // 宣告一個map迭代器
for(iter = a.begin(); iter != a.end(); iter++){ // map容器遍歷
cout<<iter->first<<" - "<<iter->second<<endl;
cout<<"------方法二-----"<<endl;
a.clear(); // 清空a容器
return 0;
結果:
3 | 3 | 11 | 15 |
------方法一-----
3 - 0
11 - 2
15 - 3
------方法二-----
3 - 1
總結,map的方法一和方法二插入方法基本一樣,不同之處是,當插入元素的key與map容器已有的key相同時,方法二會用key對應的新的value值更新map中存在的舊的value值,方法一會保留舊的value值。
方法一:利用insert命令。
for(i = 0; i<nums.size();i++){
a.insert(map<int,int>::value_type(nums[i], i));
}
方法二:利用陣列。
for(i = 0; i < nums.size(); i++){
a[nums[i]] = i;
}
下面我們來看一下其具體效果:
#include <iostream>
#include <map>
#include <vector>
using namespace std;
int main()
{
vector<int> nums;
map<int, int> a;
nums.push_back(3);
nums.push_back(3);
nums.push_back(11);
nums.push_back(15);
for(int i=0; i<nums.size(); i++){ // vector容器遍歷
cout<<nums[i]<<" | ";
}
cout<<endl;
cout<<"------方法一-----"<<endl;
for(int i = 0; i<nums.size();i++){
a.insert(map<int,int>::value_type(nums[i], i));
}
map<int, int>::iterator iter; // 宣告一個map迭代器
for(iter = a.begin(); iter != a.end(); iter++){ // map容器遍歷
cout<<iter->first<<" - "<<iter->second<<endl;
}
cout<<"------方法二-----"<<endl;
a.clear(); // 清空a容器
for(int i = 0; i<nums.size();i++){
a[nums[i]] = i;
}
for(iter = a.begin(); iter != a.end(); iter++){ // map容器遍歷
cout<<iter->first<<" - "<<iter->second<<endl;
}
return 0;
}
結果:
3 | 3 | 11 | 15 |
------方法一-----
3 - 0
11 - 2
15 - 3
------方法二-----
3 - 1
11 - 2
15 - 3
總結,map的方法一和方法二插入方法基本一樣,不同之處是,當插入元素的key與map容器已有的key相同時,方法二會用key對應的新的value值更新map中存在的舊的value值,方法一會保留舊的value值。