如何放置在(字符串和向量)的地图中..?
how to emplace in map of(string and vector)..?
我不确定是否可以在地图容器中包含矢量。
如果有,可以给我一张带矢量和矢量图的地图吗?
输入
ONE 1 11 111 1111
TWO 22 2 2222
THREE 333 3333 3
map<string, vector<int>> mp;
如何将input放置在上面的容器中?
map<vector<int>, vector<int>> mp;
如果这可以实现,您将如何在此处放置元素,以及如何访问这些元素?
您的第一个案例很容易实现,例如:
#include <fstream>
#include <sstream>
#include <map>
#include <vector>
#include <string>
using namespace std;
void loadFile(const string &fileName, map<string, vector<int>> &mp)
{
ifstream file(fileName.c_str());
string line;
while (getline(file, line))
{
istringstream iss(line);
string key;
if (iss >> key)
{
vector<int> &vec = mp[key];
int value;
while (iss >> value) {
vec.push_back(value);
}
}
}
}
int main()
{
map<string, vector<int>> mp;
loadFile("input.txt", mp);
// use mp as needed...
return 0;
}
我不确定是否可以在地图容器中包含矢量。
如果有,可以给我一张带矢量和矢量图的地图吗?
输入
ONE 1 11 111 1111
TWO 22 2 2222
THREE 333 3333 3
map<string, vector<int>> mp;
如何将input放置在上面的容器中?
map<vector<int>, vector<int>> mp;
如果这可以实现,您将如何在此处放置元素,以及如何访问这些元素?
您的第一个案例很容易实现,例如:
#include <fstream>
#include <sstream>
#include <map>
#include <vector>
#include <string>
using namespace std;
void loadFile(const string &fileName, map<string, vector<int>> &mp)
{
ifstream file(fileName.c_str());
string line;
while (getline(file, line))
{
istringstream iss(line);
string key;
if (iss >> key)
{
vector<int> &vec = mp[key];
int value;
while (iss >> value) {
vec.push_back(value);
}
}
}
}
int main()
{
map<string, vector<int>> mp;
loadFile("input.txt", mp);
// use mp as needed...
return 0;
}