源代码太长,就不贴出来了,简单描述一下:
定义了一个结构体,在类U中被作为map值类型,类M有一个类U类型的数组。
struct A{
string name;
double value;
};
class U{
public:
map<int, A> param;
....................
void setParam(int, A);
..................
};
void U:: setParam(int s, A pa){
param.insert(pair<int,A>(s, pa));
}
class M{
public:
U multi[20];
...................................
void initM();
};
void M:: initM(){
for(int i=0; i<20; i++){
string someStr;
A initPa = {someStr, 0.0};
multi[i].setParam(i, initPa);
}
}
编译链接没有问题
编译器g++ 4.3.3 系统ubuntu
运行时报错:segmentation fault
gdb后给的信息是类似:
std::_Rb_tree map <int, std::pair <int const, A> std::_Select1st map <int, std::pair <int const, A> std::less <int>, std::allocator <std::pair <int const, A> > >::insert_unique(std::pair <int const, A> const&)
最早是觉得是map的错,google的结果是很有可能其他操作破坏了结构体A initPa, 但是检查之后并没有发现有其他操作使用了这个变量,最后在声明map<int, A> param 的地方 加了关键字struct 改为 map<int, struct A> param。程序竟然神奇的运行了……
我印象里c++是不需要关键字struct来定义变量的,但是不知道为什么这里要加这个。而且,如果没有第二个类M,直接操作U类,是没有这样的问题的…………
求解…………
分享到:
相关推荐
学习STL MAP, STL SET之数据结构基础
STL中map用法详解 STL中map用法详解 STL中map用法详解
C++11中有无序map即: unordered_map 可以不自动排序, 那么C++98中只有map 如何避免自动排序。
STL map例子 基本操作包括增删改查!
stl map algorithm ppt 精品课件
可以在windbg导出stl map和set的插件,使用方法参考我csdn的博客http://blog.csdn.net/yichigo/article/details/38232511
stl中map用法详解
STL中map用法详解 非常详细,有说明和可以编译的例子
以STL::map实现引用表,如有错误,欢迎指教!
C++ stl中map容器的基本概念与增删查改功能实现
实现统计一段文章的每个单词的个数...其中CountDemo使用STL中的Map来实现的 CountDemo2是用一般语言实现,没有用到STL实现的; MapCount是用STL中的Vector和Map共同实现的 此题目是学习STL中的Map和Vector必练的经典题目
自己编写了STL库的map,供大家学习讨论
如果你具备一定的C++ template知识,即使你没有接触过STL,这个文章你也应该可能较轻易的看懂。
STL中map用法详解STL中map用法详解STL中map用法详解
比较两者查找效率,得出结论是结构体比字符串组合快~~~
STL的map例子agtbouns STL的map例子agtbouns
对STL中的list进一步学习,编程过程中对结构体的操作很多。 全部代码如下: /* Project:list对结构体的使用 Date: 2018/07/14 Author: Frank Yu 常用函数:int size() 返回容器元素个数;bool empty() 判断容器...
一个学习STL 中Map的类,主要实现stl::map的查找、删除、增加等
stl_map,讲述stlmap的一篇!大家可以学学!
STL的map的一个例子agtbouns STL的map的一个例子agtbouns