本文整理汇总了C++中std::tr1::unordered_map类的典型用法代码示例。如果您正苦于以下问题:C++ unordered_map类的具体用法?C++ unordered_map怎么用?C++ unordered_map使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了unordered_map类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: encode
static std::string encode(const std::string& s,const std::tr1::unordered_map<char,std::string>& charToAscii){
if(s.empty()) return "";
size_t i=s.length()-1;
std::string ret;
while(true){
const std::tr1::unordered_map<char,std::string>::const_iterator iter=charToAscii.find(s[i]);
if(iter!=charToAscii.end()) ret.append(iter->second);
else throw std::runtime_error("char not found");
if(i==0) break;
i--;
}
return ret;
};
开发者ID:snnn,项目名称:onlinejudge,代码行数:13,代码来源:444.cpp
示例2: suisto_get_since
bool suisto_get_since( std::string stream_name, uint64_t ts, std::vector<entry_t*>& out ){
std::tr1::unordered_map< std::string, Stream >::iterator it;
it = streams.find( stream_name );
if( it == streams.end() ){
return false;
}
out = (it->second).since( ts );
return true;
}
开发者ID:mgronhol,项目名称:suisto,代码行数:13,代码来源:suisto-server.cpp
示例3: muladd
void muladd(const fv_t &fv, const int y, float scale) {
for (size_t i = 0; i < fv.size(); i++) {
int key = fv[i].first;
float x_i = fv[i].second;
std::tr1::unordered_map<int, float>::iterator wit = w.find(key);
if (wit != w.end()) {
wit->second += y * x_i * scale;
} else {
w[key] = y * x_i * scale;
}
}
};
开发者ID:syou6162,项目名称:fobos,代码行数:13,代码来源:fobos.hpp
示例4: dotproduct
float dotproduct(const fv_t& fv) {
float m = 0.0;
size_t fv_size = fv.size();
for (size_t i = 0; i < fv_size; i++) {
int key = fv[i].first;
float x_i = fv[i].second;
std::tr1::unordered_map<int, float>::iterator wit = w.find(key);
if (wit != w.end()) {
m += x_i * wit->second;
}
}
return m;
};
开发者ID:syou6162,项目名称:fobos,代码行数:13,代码来源:fobos.hpp
示例5: suisto_get_latest
bool suisto_get_latest( std::string stream_name, size_t max_entries, std::vector<entry_t*>& out ){
std::tr1::unordered_map< std::string, Stream >::iterator it;
it = streams.find( stream_name );
if( it == streams.end() ){
return false;
}
out = (it->second).latest( max_entries );
return true;
}
开发者ID:mgronhol,项目名称:suisto,代码行数:13,代码来源:suisto-server.cpp
示例6: suisto_create_stream
bool suisto_create_stream( std::string stream_name ){
std::tr1::unordered_map< std::string, Stream >::iterator it;
it = streams.find( stream_name );
if( it != streams.end() ){
return false;
}
streams[ stream_name ] = Stream();
return true;
}
开发者ID:mgronhol,项目名称:suisto,代码行数:14,代码来源:suisto-server.cpp
示例7: l1_regularize
void l1_regularize(const int iter) {
float lambda_hat = get_eta(iter) * lambda;
std::tr1::unordered_map<int, float> tmp = w;
std::tr1::unordered_map<int, float>::iterator it = tmp.begin();
for (; it != tmp.end(); it++) {
int key = it->first;
std::tr1::unordered_map<int, float>::iterator wit = w.find(key);
float aaa = wit->second;
wit->second = clip_by_zero(wit->second, lambda_hat);
if (fabsf(aaa) < lambda_hat) {
w.erase(wit);
}
}
};
开发者ID:syou6162,项目名称:fobos,代码行数:15,代码来源:fobos.hpp
示例8: lineStream
std::tr1::shared_ptr<WordTagFreqs> ModelPrivate::readLexicon(
std::istream &lexiconStream,
std::tr1::unordered_map<std::string, size_t> const &tagNumbers)
{
std::tr1::shared_ptr<WordTagFreqs> lexicon(
new WordTagFreqs);
std::string line;
while (std::getline(lexiconStream, line)) {
std::istringstream lineStream(line);
// Read line items.
std::vector<std::string> lineItems;
copy(std::istream_iterator<std::string>(lineStream),
std::istream_iterator<std::string>(),
std::back_inserter(lineItems));
if (lineItems.size() == 0 || (lineItems.size() - 1) % 2 != 0)
throw std::runtime_error(std::string("Invalid lexicon entry: ") + line);
std::string word = lineItems[0];
for (size_t i = 1; i < lineItems.size(); i += 2) {
std::istringstream freqStream(lineItems[i + 1]);
size_t freq;
freqStream >> freq;
size_t tag = tagNumbers.find(lineItems[i])->second;
(*lexicon)[word][tag] = freq;
}
}
return lexicon;
}
开发者ID:chin9ubda,项目名称:engQuiz,代码行数:33,代码来源:ModelPrivate.cpp
示例9: while
void m_dccchat::dccListen(std::string id, Socket* listenSocket) {
std::tr1::unordered_map<std::string, std::vector<std::string> >::iterator ourReportingModules = reportingModules.find(id);
while (true) {
if (!listenSocket->isConnected())
break;
std::string receivedMsg = listenSocket->receive();
std::cout << "DCC " << id << ":" << receivedMsg << std::endl;
std::tr1::unordered_map<std::string, Module*> modules = getModules(); // get a new one each time in case it is updated
for (std::tr1::unordered_map<std::string, std::string>::iterator hookIter = moduleTriggers.begin(); hookIter != moduleTriggers.end(); ++hookIter) {
if (hookIter->first == receivedMsg.substr(0, receivedMsg.find_first_of(' '))) {
bool alreadyReporting = false;
for (unsigned int i = 0; i < ourReportingModules->second.size(); i++) {
if (ourReportingModules->second[i] == hookIter->second) {
alreadyReporting = true;
break;
}
}
if (!alreadyReporting)
ourReportingModules->second.push_back(hookIter->second);
}
}
for (unsigned int i = 0; i < ourReportingModules->second.size(); i++) {
std::tr1::unordered_map<std::string, Module*>::iterator modIter = modules.find(ourReportingModules->second[i]);
if (modIter == modules.end())
ourReportingModules->second.erase(ourReportingModules->second.begin()+i);
else {
std::vector<std::string> modSupports = modIter->second->supports();
for (unsigned int i = 0; i < modSupports.size(); i++) {
if (modSupports[i] == "DCC_CHAT") {
dccChat* dccMod = (dccChat*)modIter->second;
dccMod->onDCCReceive(id, receivedMsg);
break;
}
}
}
}
}
std::tr1::unordered_map<std::string, Module*> modules = getModules();
for (unsigned int i = 0; i < reportingModules.size(); i++) {
std::tr1::unordered_map<std::string, Module*>::iterator modIter = modules.find(ourReportingModules->second[i]);
dccChat* dccMod = (dccChat*) modIter->second;
dccMod->onDCCEnd(id); // call the DCC end hook for each watching module as the DCC session ends
}
delete listenSocket;
activeConnections.erase(id);
}
开发者ID:MasseR,项目名称:RoBoBo-IRC-BoBo,代码行数:46,代码来源:m_dccchat.cpp
示例10: unhookDCCSession
void m_dccchat::unhookDCCSession(std::string modName, std::string dccid) {
std::tr1::unordered_map<std::string, std::vector<std::string> >::iterator reportingModIter = reportingModules.find(dccid);
if (reportingModIter == reportingModules.end())
return;
for (unsigned int i = 0; i < reportingModIter->second.size(); i++) {
if (reportingModIter->second[i] == modName)
reportingModIter->second.erase(reportingModIter->second.begin()+i);
}
}
开发者ID:MasseR,项目名称:RoBoBo-IRC-BoBo,代码行数:9,代码来源:m_dccchat.cpp
示例11: suisto_add_post
bool suisto_add_post( std::string stream_name, std::string post_content ){
std::tr1::unordered_map< std::string, Stream >::iterator it;
it = streams.find( stream_name );
if( it == streams.end() ){
return false;
}
entry_t *entry = new entry_t;
entry->id = Clock::next();
entry->timestamp = generate_timestamp( entry->id );
posts[entry->id] = escape_string( post_content );
(it->second).add( entry );
return true;
}
开发者ID:mgronhol,项目名称:suisto,代码行数:19,代码来源:suisto-server.cpp
示例12: getQualityScore
double Modularity::getQualityScore(const Graph * graph, std::tr1::unordered_map<uint32_t, Community*>& communities, double gamma)
{
// const uint32_t communityNum = communities.size();
double Q = 0.0;
uint32_t edge_num = graph->edge_num_;
std::tr1::unordered_map<uint32_t, Community*>::iterator itr;
for(itr=communities.begin(); itr!=communities.end(); itr++)
{
Community * community = itr->second;
uint32_t in_degree = community->in_degree_;
uint32_t total_degree = community->total_degree_;
Q += ((double)in_degree)/(2*(double)edge_num) - pow((double)total_degree/((double)(2*edge_num)), 2);
//printf("Q: %f, indegree: %u, total: %u, edgenum: %u\n",Q,in_degree, total_degree, edge_num);
}
std::cout << "Q: \t" << Q << "\n";
return Q;
}
开发者ID:inmanhust,项目名称:RecSys,代码行数:20,代码来源:Modularity.cpp
示例13: it
inline void operator<< (object::with_zone& o, const std::tr1::unordered_map<K,V>& v)
{
o.type = type::MAP;
if(v.empty()) {
o.via.map.ptr = NULL;
o.via.map.size = 0;
} else {
object_kv* p = (object_kv*)o.zone->malloc(sizeof(object_kv)*v.size());
object_kv* const pend = p + v.size();
o.via.map.ptr = p;
o.via.map.size = v.size();
typename std::tr1::unordered_map<K,V>::const_iterator it(v.begin());
do {
p->key = object(it->first, o.zone);
p->val = object(it->second, o.zone);
++p;
++it;
} while(p < pend);
}
}
开发者ID:skhaz,项目名称:msgpack-c,代码行数:20,代码来源:unordered_map.hpp
示例14: resolve
std::string resolve(size_t len,const std::string& s,std::tr1::unordered_map<std::string,int> count){
count.clear();
if(s.length()<len) throw std::runtime_error("err");
if(s.length()==len) return s;
const size_t maxIndex=s.length()-len;
std::tr1::unordered_map<std::string,int>::iterator end=count.end();
int maxCount=1;
std::string maxStr=s.substr(0,3);
for(size_t i=1;i!=maxIndex;++i){
const std::string substr=s.substr(i,len);
std::tr1::unordered_map<std::string,int>::iterator iter=count.find(substr);
if(iter!=end){
if(++iter->second > maxCount){
maxCount=iter->second;
maxStr=substr;
}
}
else count[substr]=1;
}
return maxStr;
}
开发者ID:snnn,项目名称:onlinejudge,代码行数:21,代码来源:902.cpp
示例15: decode
static std::string decode(const std::string& s,const std::tr1::unordered_map<std::string,char>& asciiToChar){
if(!isDigit(s))
throw std::runtime_error("err");
std::string ret;
for(size_t i=0;i+1<s.length();){
std::string key;
if(s[i+1]<='2'){
if(i+2>=s.length()) throw std::runtime_error("err");
key=s.substr(i,3);
i+=3;
} else{
key=s.substr(i,2);
i+=2;
}
const std::tr1::unordered_map<std::string,char>::const_iterator iter=asciiToChar.find(key);
if(iter!=asciiToChar.end())
ret.append(1,iter->second);
else throw std::runtime_error("num not found");
}
std::reverse(ret.begin(),ret.end());
return ret;
}
开发者ID:snnn,项目名称:onlinejudge,代码行数:22,代码来源:444.cpp
示例16: height
uint height(TreeNode* root)
{
if (root == NULL) {
return 0;
}
static std::tr1::unordered_map<void*, uint> cache;
typeof(cache.begin()) it = cache.find(root);
if (it != cache.end()) {
return it->second;
}
uint left = height(root->left);
uint right = height(root->right);
uint child = left > right ? left : right;
uint ret = root->cost + child;
cache.insert(std::make_pair(root, ret));
return ret;
}
开发者ID:jackonan,项目名称:acm,代码行数:22,代码来源:max_distance_of_tree_node.cpp
示例17: displayMulti
//Implementation of displayMulti()
void Engine::displayMulti(std::tr1::unordered_map<string, unsigned int> table) {
// If the map is empty there is nothing to be done.
if(table.empty()) {
cout << "No movies matched your search. Sorry" << endl << endl ;
return ;
}
std::tr1::unordered_map<string, unsigned int>::iterator it2 ;
string big ;
// Iterate three times to get the three movies with highest frequencies
for(int i = 0 ; i < 3 ; i++) {
// If the intersection is empty the job is done
if(table.size() == 0) {
cout << "No more movies." << endl << endl ;
return ;
}
// Assume the movie with highest frequency is the first one
big = table.begin()->first ;
// Iterate through the rest of the movies and if one with higher frequency
// is found swap it with big
for(it2 = table.begin() ; it2 != table.end() ; it2++)
if(table[big] < it2->second)
big = it2->first;
// Print the movie with highest frequency
cout << "Movie " << i+1 << ": " << big << endl ;
// Erase that movie from the map
table.erase(big) ;
}
cout << endl ;
}
开发者ID:chrisrodz,项目名称:moviedb-search-engine,代码行数:38,代码来源:Engine.cpp
示例18:
std::vector<std::string> m_dccchat::getConnections() {
std::vector<std::string> connections;
for (std::tr1::unordered_map<std::string, Socket*>::iterator connIter = activeConnections.begin(); connIter != activeConnections.end(); ++connIter)
connections.push_back(connIter->first);
return connections;
}
开发者ID:MasseR,项目名称:RoBoBo-IRC-BoBo,代码行数:6,代码来源:m_dccchat.cpp
示例19: dccSend
void m_dccchat::dccSend(std::string recipient, std::string message) {
std::tr1::unordered_map<std::string, Socket*>::iterator dccIter = activeConnections.find(recipient);
if (dccIter == activeConnections.end())
return;
dccIter->second->sendData(message);
}
开发者ID:MasseR,项目名称:RoBoBo-IRC-BoBo,代码行数:6,代码来源:m_dccchat.cpp
示例20: replace
void replace(std::string user, std::string command, std::deque<std::string> args)
{
if (cuboidMap.find(user) != cuboidMap.end())
{
cuboidMap.erase(user);
}
if (args.size() == 2)
{
cuboidMap[user].active = 1;
cuboidMap[user].state = 0;
cuboidMap[user].action = REPLACE;
int blockID = atoi(args[0].c_str());
//If item was not a number, search the name from config
if (blockID == 0)
{
blockID = mineserver->config.iData(args[0].c_str());
}
if(blockID < 1 || blockID > 255)
{
cuboidMap.erase(user);
return;
}
cuboidMap[user].fromBlock = blockID;
blockID = atoi(args[1].c_str());
//If item was not a number, search the name from config
if (blockID == 0 && args[1] != "0")
{
blockID = mineserver->config.iData(args[1].c_str());
}
if(blockID < 0 || blockID > 255)
{
cuboidMap.erase(user);
return;
}
cuboidMap[user].toBlock = blockID;
mineserver->chat.sendmsgTo(user.c_str(),"Cuboid replace start, hit first block");
}
}
开发者ID:SamuelStewart,项目名称:mineserver,代码行数:47,代码来源:commands.cpp
注:本文中的std::tr1::unordered_map类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论