Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/153.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 使用模板类通过引用复制向量?_C++ - Fatal编程技术网

C++ 使用模板类通过引用复制向量?

C++ 使用模板类通过引用复制向量?,c++,C++,我有一个向量,我需要复制它作为一个模板向量类? 因此,如果我修改原始向量中的一个元素,它也需要修改另一个元素。 这是我的主要功能 #include <iostream> #include "thisheader.h" #include <vector> int main() { std::vector<int> v; v.push_back(2); v.push_back(4); v.push_back(6

我有一个向量,我需要复制它作为一个模板向量类? 因此,如果我修改原始向量中的一个元素,它也需要修改另一个元素。 这是我的主要功能

#include <iostream>
#include "thisheader.h"
#include <vector>

int main()
{
    std::vector<int> v;
    v.push_back(2);
    v.push_back(4);
    v.push_back(6);
    
    std::vector<double> a;
    a.push_back(4.32);    
    templatevectorclass<int> vv(v);
    templatevectorclass<double> av(a);

    v[0] = 3;
    if(vv[0]==v[0]){
        std::cout << "good" ;
    }else{
        std::cout << "bad";
    }

    a[0] = 2.4;
    if(av[0]==a[0]){
        std::cout << "good" ;
    }else{
        std::cout << "bad";
    }
}
#包括
#包括“thishheader.h”
#包括
int main()
{
std::向量v;
v、 推回(2);
v、 推回(4);
v、 推回(6);
std::载体a;
a、 推回(4.32);
模板向量类vv(v);
模板向量类av(a);
v[0]=3;
如果(vv[0]==v[0]){

std::cout据我所知,您希望将引用存储在
templatevectorclass

template<class T1>
class templatevectorclass {
    std::vector<T1> &reference;

public:    
    templatevectorclass(std::vector<T1> &vector) : reference(vector) {
    }
  
    T1 const& operator[](int index) const
    {
        return reference[index];
    }
};
模板
类templatevectorclass{
标准::矢量和参考;
公众:
templatevectorclass(std::vector&vector):参考(vector){
}
T1常量和运算符[](整数索引)常量
{
返回参考[索引];
}
};

对不起,我不明白你的问题。你能重新措辞吗?我只看到你不需要循环。只要copy=vector。是的,我想使用引用将向量复制到模板类,因此如果我更改原始向量的值,模板类向量引用也应该更改。Idk如何使用引用,你能帮我吗?你能给我一个代码?我不知道如何用引用复制向量?谢谢:请定义什么是“通过引用复制”?复制是一回事,引用是另一回事。引用不能是副本。所以,问题听起来像是“存储对向量的引用”。
template<class T1>
class templatevectorclass {
    std::vector<T1> &reference;

public:    
    templatevectorclass(std::vector<T1> &vector) : reference(vector) {
    }
  
    T1 const& operator[](int index) const
    {
        return reference[index];
    }
};