有一组长度不固定的参数需要传输,且参数形式为结构体,那么一个比较简单的方法是将这些参数作为一个std::vector
。例如
1 | void f(std::vector<struct ExampleStruct> data); |
由于 C++是采用值传递的方式,每次对std::vector
进行元素的存取操作时,都会对涉及的结构体进行复制。如果结构体的数量比较多,或者结构体的体积比加大,那么这种方式对于计算和内存资源的浪费就比较大了。
有一组长度不固定的参数需要传输,且参数形式为结构体,那么一个比较简单的方法是将这些参数作为一个std::vector
。例如
1 | void f(std::vector<struct ExampleStruct> data); |
由于 C++是采用值传递的方式,每次对std::vector
进行元素的存取操作时,都会对涉及的结构体进行复制。如果结构体的数量比较多,或者结构体的体积比加大,那么这种方式对于计算和内存资源的浪费就比较大了。
这篇文章的缘由是我在尝试使用ns3带的NetAnim程序时,显示了下面这个错误:
1 | dyld: Library not loaded: @rpath/QtGui.framework/Versions/4/QtGui |
ns3 使用了 waf 编译系统,因此在 ns3 中尝试引入第三方模块时,就没有 make 那么直接了。