Vector is returned empty
Vector is returned empty
注意:由于各种原因,我不能发布完整的源代码,但我会给出基本的想法。
class Whatever{
private:
std::vector<int> vector;
public:
std::vector<int> getVector() {
return vector;
}
如果调用getVector(),则先前填充的向量将为空。例如
whatever Class;
std::cout << "nn" << Class.getVector().size();
返回0
任何建议吗?
注意:原向量确实被填充,但内容不会转移到新向量。
如果我要调用getVector(),那么先前填充的向量将是空的。
无论阶级;std:: cout & lt; & lt;" n n"& lt; & lt;.size Class.getVector () ();
这将返回0。任何建议吗?
你忘记填充向量了
class Whatever{
private:
std::vector<int> v_;
public:
Whatever ( int n) : v_( n) {}
std::vector<int>& getVector() {
^^^ // most probably you want to avoid copy
return v_;
}
};
你原来的定义:
std::vector<int> getVector() {
return vector;
}
将始终返回vector所等于对象的副本。
你说:
注意:原来的向量确实被填充了,但是内容被填充了不能传递给新向量
我确信你是这样做的:
Whatever w;
std::vector<int> v = w.getVector();
v.push_back( 107);
//... etc
std::vector<int> v2 = w.getVector(); // empty
相关文章:
- 为什么"(!v.empty())"比"(v.size() >0)"好?
- DirectX11 IASetVertexBuffers with nullptrs or empty buffers
- 为什么C++标准库容器函数 empty() 标记为 [[nodiscard]]?
- Cppcheck "Reference to auto variable returned"失败的原因?
- cuda-gdb 给出错误"warning: Cuda API error detected: cudaLaunchKernel returned (0x7)"
- list::empty() 多线程行为?
- Qt3D:"Mesh is empty, nothing to load"消息
- 我在C++中收到错误" [Error] ld returned 1 exit status".帮我解决这个问题
- 为什么错误"permission denied","id returned 1 exit status"仅在 IM 使用 C++ 中的头文件 fstream 时才出现
- 使用迭代器成员函数是否仅适用于某些向量类型"empty()"?
- "Empty base optimization" lambda 捕获 - 标准禁止?为什么?
- QTcpSocket::readAll() is empty
- 在从 std::vector 移动的上调用 .clear()、.shrink_to_fit()、.empty() 是否合
- 获取所有 FPU 寄存器的值,甚至"empty"个寄存器的值
- QJsonValue gets empty
- Got empty Qt
- 请求使用 .empty 或 .size 的非类类型的成员
- std::size 和 std::empty 的专业化与模板不匹配
- 断言失败 (!ssize.empty()) in remapBilinear.
- Vector is returned empty