在另一个类的两个函数中操作一个类的向量
Manipulating a vector of one class inside of 2 functions of another class
这似乎非常非常复杂,我尝试了很多来解决它,但是当我在模板/类内部调整一个私有成员的大小时,即,当我调用Operator::InitExtVector时,我通过它的地址调整intVect的大小,当我显示/调用Operator::ShowExtVector时,它的大小再次为0,这应该不会发生。为什么矢量信息会丢失?
我有一个模板/类Base.H:#include <vector>
typedef std::vector <unsigned long int > varVect1D_ul;
<template <typename PS>
class Base{
private:
PS bla;
varVect1D_ul intVect;
public:
varVect1D_ul* dataVect(){return &intVect}
}
有些操作是在Operator类中完成的,一般没有模板,Operator. h:
class Operator{
public:
.....
private:
void InitExtVector(std::vector <Base<float> > BaseVect){
varVect1D_ul *pVect;
for(i=0...BaseVect.size()){
pVect=dataVect();
pVect->resize(10);
}
} // end InitExtVector
void ShowExtVector(std::vector <Base<float> > BaseVect){
varVect1D_ul *pVect;
for(i=0...BaseVect.size()){
pVect=BaseVect[i].dataVect();
cout<<pVect->size();
}
}//end ShowExtVector
}; //end class
,客户端代码看起来像someOperations.C:
#include "Base.H"
#include "Operator.H"
foo(){
std::vector <Base<float> > BaseVect(2);
//do some initization of BseVect;
Operator *ObjOper= new Operator;
ObjOper->InitExtVector(BaseVect);
ObjOper-> ShowExtVector(BaseVect);
}
所有语法都是Ok的,pVect在InitExtVect和ShowExtVector中的地址是相同的
任何帮助都将不胜感激
对
JORR
我认为你想通过引用来获取向量:
void InitExtVector(std::vector <Base<float> > & BaseVect);
void ShowExtVector(std::vector <Base<float> > & BaseVect);
还有,你的意思是在InitExtVector:
for(i=0 ; i < BaseVect.size() ; ++i){
pVect=BaseVect[i].dataVect();
pVect->resize(10);
}
相关文章:
- 为什么一个向量上的多线程操作很慢
- 给定一个整数数组,需要在Max_Heap上运行操作。得到错误"segmentation fault",有什么想法吗?(C++)
- 为表示一个或多个操作的C++函数的int参数寻找类型安全的替换
- 完成任何一个操作后,该程序会自动退出,为什么?
- 编译一个自定义的tf操作,其中输入是5d张量
- 是否有一个C++函数可以准确返回平方根反比的内置 CPU 操作 RSQRTSS 的值?
- 在 "CodePad" 中执行链表操作时转储的核心(这是一个在线C++编译器)
- 如何仅覆盖一个EXPECT_CALL的默认ON_CALL操作,并在以后返回到默认操作
- 是新的(&*p)双倍;一个无操作。因此,uninitialized_default_construct是否也变得无操作?
- 当我尝试在 tensorflow 中添加一个新操作时如何 #include "include/libxsmm.h"?
- 发送到另一个窗口的鼠标移动消息不执行任何操作
- 递归推动POP POSTFIX计算器无法正确执行操作,只需将最后一个数字作为结果
- 我想知道像素/片段的原始模板值.零还是一个?如果可能的话,以获取哪些特定操作会修改模板值
- 内联一个操作堆上数据的函数
- 阵列操作,复制最后一个元素
- 打开一个文件,修改每个字符,然后执行反向操作不输出原始文件
- 需要帮助创建一个休眠条件的循环,当满足条件时,它会停止,直到下一个操作
- 两个 UShorts 之间的操作在 VC2015 中给出了一个 int
- 如何编写两个初始化操作(一个作为默认初始化,另一个作为用户输入)?两者都是类的构造函数C++
- 在另一个类的两个函数中操作一个类的向量