returns在c++中映射的函数
Function that returns map in c++
谁能给出一个 returns 在 c++ 中映射的函数的实际示例。
我试过其他帖子的答案,但我不知道如何在我的案例中应用。
这是我的工作代码:
auto DataArray = jvalue.at(U("data")).as_array();
//Make an associative array or map with key value pair from extracted json data
std::map<int, std::string> staffMap;
// loop through 'data' object
for (int i = 0; i < DataArray.size(); i++)
{
try
{
auto data = DataArray[i];
auto dataObj = data.as_object();
int key;
std::string value;
// loop through each object of 'data'
for (auto iterInner = dataObj.cbegin(); iterInner != dataObj.cend(); ++iterInner)
{
auto &propertyName = iterInner->first;
auto &propertyValue = iterInner->second;
//std::wcout << "Property: " << propertyName << ", Value: " << propertyValue << std::endl;
if (propertyName == L"_id")
{
key = propertyValue.as_integer();
}
else if (propertyName == L"name")
{
value = conversions::to_utf8string(propertyValue.as_string());
}
}
staffMap.insert(std::make_pair(key, value));
}
catch (const std::exception& e)
{
std::wcout << e.what() << std::endl;
}
}
// Iterate through map and display in terminal
std::map<int, std::string>::iterator iter;
std::wcout << "The list of staffs" << std::endl;
for (iter = staffMap.begin(); iter != staffMap.end(); iter++)
std::cout << iter->first << " " << iter->second << " ,";
假设我想要一个函数:
std::map<int, std::string> staffMap;
std::map<> GetStaffMap()
{
return staffMap;
}
// Give staffMap a data here
我找不到足够的教程来制作一个在 C++ 中 returns std::map 的函数。希望有人能在这里帮助我。谢谢。
I can't find enough tutorial for making a function that returns std::map in c++. Hope someone could help me here
您需要指定确切的类型,std::map<int, std::string>
:
std::map<int, std::string> GetStaffMap()
{
return staffMap;
}
如果您能够使用 C++14,请使用 auto
作为替代:
auto GetStaffMap()
{
return staffMap;
}
下面的示例展示了如何在 C++ 中创建一个 returns 映射的函数。
// Example program with a function returning a map
#include <iostream>
#include <string>
#include <map>
std::map<std::string, int>
function()
{
std::map<std::string, int> out;
out["one"] = 1;
out["two"] = 2;
return out;
}
int main()
{
std::map<std::string, int> out = function();
for (const auto & iter : out)
std::cout << iter.first << " = " << iter.second << std::endl;
}
谁能给出一个 returns 在 c++ 中映射的函数的实际示例。
我试过其他帖子的答案,但我不知道如何在我的案例中应用。
这是我的工作代码:
auto DataArray = jvalue.at(U("data")).as_array();
//Make an associative array or map with key value pair from extracted json data
std::map<int, std::string> staffMap;
// loop through 'data' object
for (int i = 0; i < DataArray.size(); i++)
{
try
{
auto data = DataArray[i];
auto dataObj = data.as_object();
int key;
std::string value;
// loop through each object of 'data'
for (auto iterInner = dataObj.cbegin(); iterInner != dataObj.cend(); ++iterInner)
{
auto &propertyName = iterInner->first;
auto &propertyValue = iterInner->second;
//std::wcout << "Property: " << propertyName << ", Value: " << propertyValue << std::endl;
if (propertyName == L"_id")
{
key = propertyValue.as_integer();
}
else if (propertyName == L"name")
{
value = conversions::to_utf8string(propertyValue.as_string());
}
}
staffMap.insert(std::make_pair(key, value));
}
catch (const std::exception& e)
{
std::wcout << e.what() << std::endl;
}
}
// Iterate through map and display in terminal
std::map<int, std::string>::iterator iter;
std::wcout << "The list of staffs" << std::endl;
for (iter = staffMap.begin(); iter != staffMap.end(); iter++)
std::cout << iter->first << " " << iter->second << " ,";
假设我想要一个函数:
std::map<int, std::string> staffMap;
std::map<> GetStaffMap()
{
return staffMap;
}
// Give staffMap a data here
我找不到足够的教程来制作一个在 C++ 中 returns std::map 的函数。希望有人能在这里帮助我。谢谢。
I can't find enough tutorial for making a function that returns std::map in c++. Hope someone could help me here
您需要指定确切的类型,std::map<int, std::string>
:
std::map<int, std::string> GetStaffMap()
{
return staffMap;
}
如果您能够使用 C++14,请使用 auto
作为替代:
auto GetStaffMap()
{
return staffMap;
}
下面的示例展示了如何在 C++ 中创建一个 returns 映射的函数。
// Example program with a function returning a map
#include <iostream>
#include <string>
#include <map>
std::map<std::string, int>
function()
{
std::map<std::string, int> out;
out["one"] = 1;
out["two"] = 2;
return out;
}
int main()
{
std::map<std::string, int> out = function();
for (const auto & iter : out)
std::cout << iter.first << " = " << iter.second << std::endl;
}