将数据读入地图时出现问题
Issue reading data into a map
我不知道为什么我的pull_data函数在调用时崩溃,我将其缩小到"myMap[word]++"行。但是,如果我理解正确,它应该可以工作。就像如果带有键"word"的元素不存在一样,将创建该元素并初始化值。
我的第一个变体是提取 2 个不同的文件,并将数据保存到 2 个不同的地图中。
if (file.is_open()) {
while (file >> word) {
myMap[word]++;
}
file.close();
}
else {
cout << "Unable to open file.";
}
但是,我不是从 2 个不同的文件中提取,而是尝试让它读取一个用 | 分隔我需要的所有数据的文件,以指示我是从侧面还是从侧面读取。
#include <iostream>
#include <fstream>
#include <map>
#include <string>
using namespace std;
void pull_data(map<string, float>& myMap1, map<string, float>& myMap2);
void push_data(map<string, float> myMap1, map<string, float> myMap2);
void sync_data(map<string, float>& myMap1, map<string, float>& myMap2);
int main()
{
map<string, float> offData;
map<string, float> onData;
pull_data(offData, onData);
sync_data(offData, onData);
push_data(offData, onData);
system ("PAUSE");
return 0;
}
void pull_data(map<string, float>& myMap1, map<string, float>& myMap2) {
string word;
bool onOff = false;
ifstream file("Data.txt");
if (file.is_open()) {
while (file >> word) {
if(word == "|" && onOff){
onOff = false;
}else if(word == "|"){
onOff = true;
}
if(onOff){
myMap2[word]++;
}else{
myMap1[word]++;
}
}
file.close();
}
else {
cout << "Unable to open file.";
}
}
void push_data(map<string, float> myMap1, map<string, float> myMap2){}
void sync_data(map<string, float>& myMap1, map<string, float>& myMap2){}
数据.txt示例
362 364 | 112 304 122 124 |
364 304 901 116 | 351 303 112 |
362 364 311 | 351 612 400 484 303 326 |
这是因为您使用的映射数据类型不符合 CopyConstructible 和 DefaultConstructible 的要求,float
是一种基元数据类型。
这就是您有一个零引用并且在使用运算符"++"时它崩溃的原因。
检查一下:
http://en.cppreference.com/w/cpp/container/map/operator_at
http://en.cppreference.com/w/cpp/concept/CopyConstructible
相关文章:
- 如何在cpp中使用地图显示给定日期范围内(在下面的问题中)的费率?
- 复杂的标准::地图,结构,标准::d问题
- 在C 性能问题中使用Getter返回地图
- 将数据读入地图时出现问题
- 使用C++模板实现 Haskell 的"地图"功能时出现问题
- C++ STL 地图:BSTR 的问题
- 使用自定义对象的地图使用MAP?可能是语法问题
- 地图的范围和价值存储问题
- 从地图中获取字符分类信息时出现问题
- ID2D1位图1::地图问题
- 我在迭代地图并更改其中的值时遇到问题
- 真的很想解决地图的"常量"问题
- 简单的地图绘制问题
- 关于地图 STL 的问题
- 2D等轴测引擎-数学问题-立方体选择-菱形地图
- 为什么我的Allegro 5地图编辑器有问题
- 我地图上的记忆问题在哪里?
- 重载地图的'<'运算符时出现问题
- 地图问题
- 地图上的find_if有问题