[英]how to access to a vector in the class from a function that belongs to that class in C++
我是 C++ 新手。 我創建了一個 cpp 和一個頭文件。 這是頭文件:
class LISCH{
public:
class lisch_entry{
public:
bool valid;
int link;
int data;
lisch_entry(){
valid = false;
}
};
vector<lisch_entry> data_vec;
public:
LISCH(int);
void insert(int);
};
在 cpp 文件中,我需要在插入函數中訪問該 data_vec 向量,但我無法這樣做,因為這是我第一次用 C++ 編碼。 這是cpp文件:
#include "lisch.h"
#include <iostream>
using namespace std;
LISCH::LISCH(int table_size){
table_size=10;
int x=5;
}
void LISCH::insert(int new_data){
lisch_entry entry;
int add=new_data%11;
if(LISCH.data_vec[add] == NULL) //here i need to acces data_vec
{
}
data_vec.insert(add,new_data); //and also here
}
我怎樣才能做到這一點? 我需要檢查向量的特定位置是否為空。
代碼有很多問題,可能是由於缺乏計划或制定所需的效果。
using namespace std; // never do this in real programs.
// Even some tests may fail accidently.
LISCH::LISCH(int table_size){
table_size=10; // those are local variables, why assigning values to them?
int x=5;
}
data_vec
被定義為lisch_entry
的向量:
vector<lisch_entry> data_vec;
您突然訪問帶有索引add
lisch_entry
類型的元素。 你已經分配了那么多元素嗎? 它可能根本不存在,程序會崩潰:
if(LISCH.data_vec[add] == NULL)
實例lisch_entry
不能相等,不能與您定義的 NULL 進行比較。 支票本身看起來很可疑,你想做什么?
data_vec.insert(add,new_data);
insert
接收一個迭代器作為第一個參數。 整數值不是迭代器。 看起來必須檢查std::vector
上的文檔。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.