注册 登录
编程论坛 C++教室

这个为什么会报错?(关于vector的问题)

a74692074 发布于 2018-07-19 16:14, 3695 次点击
#include <iostream>
#include <vector>
#include <array>
using namespace std;

int main()
{
    double a1[4] = {1.2, 2.4, 3.6, 4.8};
    vector<double> a2(4);
    a2[0] = 1.0/3.0;
    a2[1] = 1.0/1.5;
    a2[2] = 1.0/7.0;
    a2[3] = 1.0/9.0;
    array<double, 4> a3 = {3.14, 2.72, 1.62, 1.41};
    array<double, 4> a4;
    a4 = a3;
    cout << "a1[2]:" << a1[2] << " at " << &a1[2] << endl;
    cout << "a2[2]:" << a2[2] << " at " << &a2[2] << endl;
    cout << "a3[2]:" << a3[2] << " at " << &a3[3] << endl;
    cout << "a4[2]:" << a4[2] << " at " << &a4[4] << endl;
    a1[-2] = 20.2;
    cout << "a1[-2]: " << a1[-2] << " at " << &a1[-2] << endl;
    cout << "a3[2]:" << a3[2] << " at " << &a3[2] << endl;
    cout << "a4[2]:" << a4[2] << " at " << &a4[2] << endl;
    return 0;
}
只有本站会员才能查看附件,请 登录
11 回复
#2
a746920742018-07-19 16:15
有没有大神能帮帮忙??!
#3
mj00112018-07-19 16:19
arrary没有定义类型,
vector<double> arrary(4)这样写会不会更好一点
#4
a746920742018-07-19 16:21
回复 3楼 mj0011
编译器还是报错
#5
mj00112018-07-19 16:23
回复 4楼 a74692074
你把改完的代码贴上来看一下
#6
a746920742018-07-19 16:25
回复 5楼 mj0011
#include <iostream>
#include <vector>
#include <array>
using namespace std;

int main()
{
    double a1[4] = {1.2, 2.4, 3.6, 4.8};
    vector<double> array(4);
    a2[0] = 1.0/3.0;
    a2[1] = 1.0/1.5;
    a2[2] = 1.0/7.0;
    a2[3] = 1.0/9.0;
    array<double, 4> a3 = {3.14, 2.72, 1.62, 1.41};
    a4 = a3;
    cout << "a1[2]:" << a1[2] << " at " << &a1[2] << endl;
    cout << "a2[2]:" << a2[2] << " at " << &a2[2] << endl;
    cout << "a3[2]:" << a3[2] << " at " << &a3[3] << endl;
    cout << "a4[2]:" << a4[2] << " at " << &a4[4] << endl;
    a1[-2] = 20.2;
    cout << "a1[-2]: " << a1[-2] << " at " << &a1[-2] << endl;
    cout << "a3[2]:" << a3[2] << " at " << &a3[2] << endl;
    cout << "a4[2]:" << a4[2] << " at " << &a4[2] << endl;
    return 0;
}
#7
mj00112018-07-19 16:29
1.a2没有申明
2.vector对象不能通过下标来添加元素必须要用push_back()
#8
a746920742018-07-19 16:30
回复 7楼 mj0011
没听懂你可以帮我修改一下吗?谢谢好人!
#9
mj00112018-07-19 17:03
回复 8楼 a74692074
using namespace std;

int main()
{
    double a1[4] = {1.2, 2.4, 3.6, 4.8};
    double tmp[4] = {3.0 ,1.5 ,7.0 ,9.0};
    vector<double> a4(4);
    std::vector<double> a2;

    for (size_t index = 0 ; index <4; ++index){
        a2.push_back(1.0 /tmp[index]);
    }

/*
    a2[0] = 1.0/3.0;
    a2[1] = 1.0/1.5;
    a2[2] = 1.0/7.0;
    a2[3] = 1.0/9.0;
    */
    vector<double> a3 = {3.14, 2.72, 1.62, 1.41};
    a4 = a3;
    cout << "a1[2]" << a1[2]<<"at " << &a1[2] << endl;
    /*cout << "a1[2]:" << a1[2] << " at " << a1[2] << endl;
    cout << "a2[2]:" << a2[2] << " at " << &a2[2] << endl;
    cout << "a3[2]:" << a3[2] << " at " << &a3[3] << endl;
    cout << "a4[2]:" << a4[2] << " at " << &a4[4] << endl;
    a1[-2] = 20.2;
    cout << "a1[-2]: " << a1[-2] << " at " << &a1[-2] << endl;
    cout << "a3[2]:" << a3[2] << " at " << &a3[2] << endl;
    cout << "a4[2]:" << a4[2] << " at " << &a4[2] << endl;
    */
    return 0;
}

[此贴子已经被作者于2018-7-19 17:14编辑过]

#10
mj00112018-07-19 17:05
回复 8楼 a74692074
下面一排cout估计你哪里输错了,我试着按你的原样在敲一遍是对的
#11
rjsp2018-07-19 17:09
#include <vector>
#include <array>
using namespace std;

int main()
{
    double a1[4] = { 1.2, 2.4, 3.6, 4.8 };
   
    vector<double> a2(4);
    a2[0] = 1.0/3.0;
    a2[1] = 1.0/1.5;
    a2[2] = 1.0/7.0;
    a2[3] = 1.0/9.0;
   
    array<double,4> a3 = { 3.14, 2.72, 1.62, 1.41 };
    array<double,4> a4 = a3;
   
    cout << "a1[2]:" << a1[2] << " at " << &a1[2] << endl;
    cout << "a2[2]:" << a2[2] << " at " << &a2[2] << endl;
    cout << "a3[2]:" << a3[2] << " at " << &a3[3] << endl;
    cout << "a4[2]:" << a4[2] << " at " << &a4[4] << endl;
   
    a1[2] = 20.2;
    cout << "a1[2]:" << a1[2] << " at " << &a1[2] << endl;
    cout << "a3[2]:" << a3[2] << " at " << &a3[2] << endl;
    cout << "a4[2]:" << a4[2] << " at " << &a4[2] << endl;
}
#12
a746920742018-07-20 09:32
回复 10楼 mj0011
我已经知道了,是语法有错误,谢谢啦
1