zoukankan      html  css  js  c++  java
  • vector赋值

    用数组方式直接对vector赋值行不通。例如

    #include<iostream>
    #include<string>
    #include<vector>
    using namespace std;
    void main()
    {
    vector<string> a;
    a[0]="aaaaaa";
    a[1]="xxxxxx";

    cout<<a.size()<<endl;
    }

    会报错subscript out of range。

    用下标操作来插入是非法的,应该这样
    a.push_back("shui shuo mei ren le");
    a.push_back("lz22222");

    下标是修改不是插入,如果要用下标,需要保证初始化时候有足够的元素。因为一开始的时候你没有非vector分配足够的空间  resize 一下 好像就没有问题了....
    一般用push_back();

    两种方法解决,见注释

    #include<iostream>
    #include<string>
    #include<vector>
     
    using namespace std;
     
    void main()
    {
        vector<string> a;
     
        //a.resize(2);            // 1. 加这一行
        //a[0]="aaaaaa";
        //a[1]="xxxxxx";
     
        a.push_back("aaaaaa");    // 2. 或者这么写
        a.push_back("xxxxxx");
     
        cout<<a.size()<<endl;
    }

    在用vector时,增加元素通常用第二种方式。[]通常可以用来读取其中的元素,极少用于给其中的元素赋值

    版权声明:

  • 相关阅读:
    DirectX9:基础篇 第五章 绘制流水线
    他山之石:可以攻玉
    C89:论内存分配问题
    C89:关键字
    MFC:开头篇 介绍
    DirectX9:先导篇 数学基础
    模仿轮播图效果
    text选中后displa出label内容
    ASP.NET页面之间传递值的几种方式
    jquery-delay(),queue()
  • 原文地址:https://www.cnblogs.com/walccott/p/4957119.html
Copyright © 2011-2022 走看看