我在向量中插入数据时收到分段错误。我认为载体没有分配。
我不想reserve大小。怎么做?
class A
{
private:
struct data
{
int x;
int y;
};
std::vector<data>Set;
public:
void insert()
{
Set[0].x = 5; Set[0].y = 6;
}
};
A a;
a.insert(); // Segmentation Fault
Run Code Online (Sandbox Code Playgroud) class A
{
private:
std::vector<int>myvec;
public:
const std::vector<int> & getVec() const {return myvec;}
};
void main()
{
A a;
bool flag = getFlagVal();
std::vector<int> myVec;
if(flag)
myVec = a.getVec();
func1(myVec);
}
Run Code Online (Sandbox Code Playgroud)
在 行中myVec= a.getVec(),有一个 的副本,vector尽管它是通过引用返回的。如果flag不是true,将传递一个空向量。
无论如何要避免这个副本?