小编Bul*_*ali的帖子

vector.size() 一直返回 0

我有以下课程:

class MyVector{
public:
    MyVector(int num);
    virtual ~MyVector();
    int my_size();
private:
    vector<int> some_vector;
};
Run Code Online (Sandbox Code Playgroud)

构造函数和大小函数如下所示:

MyVector::MyVector(int num) {
    vector <int> some_vector(num); 
}

int MyVector::my_size() {
    return this->some_vector.size(); 
Run Code Online (Sandbox Code Playgroud)

但是,在运行这些行时:

MyVector *Bul = new MyVector(5);
    cout << Bul->my_size() << endl;
Run Code Online (Sandbox Code Playgroud)

输出为 0。谁能解释为什么会这样?

c++ class vector c++11

2
推荐指数
1
解决办法
91
查看次数

将非临时对象传递给 const 字符串引用仍然会打印垃圾

我试图自己为 my_vec 编写一个迭代器:

#define BEGIN true
#define END false
#include <vector>
#include <iostream>

template<typename Container>
class my_vec {
private:
    class iterator {
        const my_vec *this_vec;
        using iterator_type = typename std::vector<std::pair<int, const Container&>>::const_iterator;
        iterator_type itr;
    public:
        iterator(const my_vec &s, bool state) :
                this_vec(&s) {
            if (state == BEGIN) {
                itr = s.v.begin();
            } else { /*(state==END)*/
                itr = s.v.end();
            }
        }
        iterator& operator++() {
            itr++;
            return *this;
        }
        std::pair<int, const Container&> operator*() const {
            return std::make_pair(1, this_vec->dog);
        }
        bool operator!=(iterator other) …
Run Code Online (Sandbox Code Playgroud)

c++ iterator pass-by-reference copy-constructor c++11

-1
推荐指数
1
解决办法
74
查看次数