C++中,把一个map容器对象写到文件上并能读取,如何实现

我想用一个map 对象存到文件上,整个存,读取的时候,整个读,便于操作,但是不知道怎么实现,麻烦各位大虾帮忙指导一下,十分感谢
用流实现,谢谢!还有,看他们有用TXT存的,有用DAT存的,是怎么做到的,答得好,我绝不吝啬点分数
我是初学者,望各位多多指教!

楼主您好,
通常有两个常见方法来完成:
1.将map遍历,取出其中的所有key-value对,按照一定格式写入文件,读取时,按照指定的格式反写回去即可,可以选择自定义读写类,或者重载>>、<<运算符来完成。

2.使用boost的序列化库(不是很方便)

注:
由于含有动态信息,
map、vector等容器都不可以直接序列化写入文件

共同进步
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-04-14
#include<iostream>
#include<fstream>
#include<string>
#include<map>
#include<utility>
using namespace std;
int main(){
map<int ,string> my_map;
string word;
int count=0;
cout<<"请输入字符串数据"<<endl;
while(count!=4) {
cin>>word ;
my_map.insert(make_pair(++count,word));
}
//读入文本
ifstream ins("text.txt");
ofstream ous("text.txt");
map<int ,string>::iterator iter=my_map.begin();
for(;iter!=my_map.end();iter++){
ous<<iter->first<<" "<<iter->second<<endl;
}
//从文本中读出
map<int ,string> your_map;
while(!ins.eof()){
int key;
string value;
ins>>key>>value;
your_map.insert(make_pair(key,value));
}
for(map<int,string>::iterator itr=your_map.begin();itr!=your_map.end();itr++){
cout<<"The "<<itr->first<<"th word is"<<itr->second<<endl;

}
return 0;
}本回答被提问者和网友采纳
第2个回答  2009-12-31
用一个map 对象存到文件上

C++中,把一个map容器对象写到文件上并能读取,如何实现
通常有两个常见方法来完成:1.将map遍历,取出其中的所有key-value对,按照一定格式写入文件,读取时,按照指定的格式反写回去即可,可以选择自定义读写类,或者重载>>、<<运算符来完成。2.使用boost的序列化库(不是很方便)注:由于含有动态信息,map、vector等容器都不可以直接序列化写入文件 共同进步...

c++ 读文件放入map
temptri是一个局部变量 每一遍的for都会重新定义一个triangle类型的temptri结构体(也就是申请内存)然后执行完以后会将temptri舍弃掉

用C++完成一个程序,能读取BMP图象文件...
fileHead.bfSize= sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER)+ colorTablesize + lineByte*height;fileHead.bfReserved1 = 0;fileHead.bfReserved2 = 0;\/\/bfOffBits是图像文件前3个部分所需空间之和 fileHead.bfOffBits=54+colorTablesize;\/\/写文件头进文件 fwrite(&fileHead, sizeof(BIT...

C++ 如何使用 std::map 容器
首先,创建一个空的std::map:cppstd::map myMap;然后,可以通过insert方法添加键值对,例如:cppmyMap.insert(std::make_pair(key, value));获取容器大小使用size函数:cppsize_t size = myMap.size();遍历map并打印键值对,可以使用迭代器:cppfor (const auto& pair : myMap) { std::c...

C++中map的用法总结
首先,定义一个map实例:map maps; \/\/键的类型是字符,值的类型是整数通过键进行元素的插入和访问是map的主要操作。例如,要将键为'c'的值设置为5,可以这样操作:maps['c'] = 5;要获取特定键对应的值,map提供了迭代器,如it->first获取键,it->second获取对应的值。另外,map的find函数是其...

c++中map怎样逆序输出
首先,我们需要包含必要的头文件:include <map> 在主函数中,初始化一个map,并插入一些元素,如下所示:int main() { \/\/ map是红黑排序树, 遍历的时候自然就有序了 std::map<int, std::string> myMap;myMap.insert({1, "One"});myMap.insert({2, "Two"});myMap.insert({3, "...

C++ hashmap 写入文件
像楼上说的用CArchive类,我觉得应该行不能,毕竟CArchive只能写CObject对象!在网上找了个写map入文件的实现,它也不是直接写对象,而是写数据。读的时候再根据数据构造对象内容。对于hash_map也应该一样,再封装一下应该不难吧?include<iostream> include<fstream> include<string> include<map> inclu...

c++的map对象赋值问题
你要知道结构体变量名也是指针,不过这个指针比较特别。(至于怎么特别就得自己去看书了)将你的代码改为 memcpy(stuout,buff,sizeof(mapTest));就可以了

C++ map用法总结(整理)
C++中的map容器是一种关联容器,它以一对一的方式存储数据,其中关键字是唯一的,每个值对应一个唯一的关键字。map是基于红黑树的数据结构,能够自动排序数据,使得所有数据保持有序。map的使用非常灵活,可以存储任意类型的数据,无论是基本类型还是自定义类型。要使用map,首先需要包含头文件,并定义模板...

c++映射map、multimap详解
在C++编程中,map容器是一种重要的数据结构,它以pair对象存储键值对,键和值可以是任意数据类型,包括基本数据类型和自定义类型。其内部根据键的大小进行排序,默认采用升序,可通过std::greater或其他自定义规则调整。map的键值对是唯一的,键的值不可修改,键通常为const类型,确保数据的一致性。map的...

相似回答