精华内容
下载资源
问答
  • C++ vector 元素去重

    千次阅读 2018-04-28 20:04:00
    C++ vector 元素去重 思路 本文提供一种对 vector元素去重方法: 首先对 vector元素使用 sort 函数排序,使重复元素排在相邻位置 接下来使用 unique 函数将重复相邻元素放在 vector 末尾...

    C++ 的 vector 元素去重

    思路

    本文提供一种对 vector 中的元素去重的方法:

    1. 首先对 vector 中的元素使用 sort 函数排序,使重复的元素排在相邻的位置
    2. 接下来使用 unique 函数将重复的相邻元素放在 vector 末尾,返回值为末尾第一个重复元素的地址
    3. 最后调用 erase 函数,删掉重复元素

    代码

    #include <vector>
    #include <algorithm>
    using namespace std;
    
    vector<TYPE> v;
    sort(v.begin(), v.end());
    v.erase(unique(v.begin(), v.end()), v.end());
    展开全文
  • c++的vector嵌套vector

    2015-10-13 18:59:56
    #include <iostream> #include <string> #include <vector> using namespace std; int main(){...
    #include <iostream>
    #include <string>
    #include <vector>

    using namespace std;

    int main(){
        vector<vector<pair<int, int> > > v;
        for(int i= 1; i < 10; i++){
            vector<pair<int, int> > vi;
            for(int j = 10 ; j < 20;j++){
                pair<int, int> pa;
                pa = make_pair(i, j);
                vi.push_back(pa);
            }
            v.push_back(vi);
        }


        cout << "size of v:" << v.size() << endl;


        vector<vector<pair<int, int> > >::iterator iter = v.begin();
        for(;iter != v.end(); ++iter){
            cout << "level 1" << endl;
            vector<pair<int, int> >::iterator it = (*iter).begin();
            for(;it != (*iter).end(); ++it){
                cout << "value is:" << (*it).first << " " << (*it).second << endl;
            }
        }


        return 1;
    }

    来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12199764/viewspace-1813963/,如需转载,请注明出处,否则将追究法律责任。

    转载于:http://blog.itpub.net/12199764/viewspace-1813963/

    展开全文
  • 关于C++的vector用法的总结

    万次阅读 2018-05-24 15:24:47
    标准库类型的vector表示对象的集合,其中所有的对象都有相同的类型;集合中每一个对象都有一个与其对应的索引,索引用于访问对象。使用时必须包含: #include&amp;lt;vector&amp;gt; using std::...

    标准库类型的vector表示对象的集合,其中所有的对象都有相同的类型;集合中每一个对象都有一个与其对应的索引,索引用于访问对象。使用时必须包含:

    #include<vector>
    using std::vector;
    

    1、定义和初始化vector对象

    vector<string> svec;//默认初始化,svec不包含任何元素
    //事实上,最常见的方式是先定义一个空的vector,
    //然后当运行时获取到元素值就添加进去;
    
    vector<int> ivec;
    //往ivec中添加一些值
    vector<int> ivec1(ivec);
    vector<int> ivec2=ivec;
    

    列表初始化

    vector<string> svec={"the","Three","Kingdoms"};//使用'='进行列表初始化
    //也可以将初始值都放在花括号里进行列表初始化
    vector<string> v{"Be","a","Better","Fighter"};
    

    创建制定数量的元素

    vector<int> ivec(10,-1);//10和int元素,每个都初始化为-1
    vector<int> ivec1(10);//10个int元素,每个初始化为0
    vector<string> svec(10,"hello");//10个string元素,每个都初始化为"hello"
    vector<string> svec1(10);//10个string元素,每个都为空string对象
    
    

    创建二维数组

    vector<vector<int>> arr(2,vector<int>(5));//创建2行5列的二维数组,初值值为0
    

    2、向vector中添加元素
    push_back负责把一个值当成vector对象的尾元素“push”到vector对象的"尾端back"

    vector<double> dvec;
    double temp;
    for(int i=0;i<100;i++)
    {
       temp=i*i;
       dvec.push_back(temp);
    }
    

    从标准输入中读取单词,存入vector中

    string word;
    vector<string> text;
    while(cin>>word)
    {
       text,push_back(word);
    }
    

    3、vector的其他操作

    • v.empty();//检查是否为空
    • v.capacity();//返回当前vector中最大可以存储数据的容量
    • v.size();//返回v中元素的个数
    • v[n];//获取v中第n个元素

    使用引用改变vector中的元素

    vector<int> v{1,2,3,4,5,6,7,8,9};
    for(auto &i:v)
    {
       i*=100;
       cout<<i<<endl;
    }
    

    例子:以10分为一个分数段统计成绩的数量:09,1019,20~29,…

    vector<int> scores(11,0);//11个分数段,全都初始化为0
    unsigned int grade;
    while(cin>>grade)//读取成绩
    {
       if(grade<=100)//只处理有效的成绩
           ++scores[grade/10];//将对应分数段的计数值加1
    }
    

    特别注意:对于一个空的vector,不能使用下标向其中添加元素。只能使用push_back. 只能对确知已存在的元素执行下标操作。

    4、使用迭代器
    begin成员负责返回指向第一个元素(或第一个字符)的迭代器;end成员负责返回指向容器(或string对象)的尾元素的下一个位置的迭代器。
    begin和end返回的具体类型由对象是否是常量决定,如果对象是常量,begin和end返回const_iterator;如果对象不是常量,返回iterator;

    vector<int>::iterator it;//it是能读写的vector<int>的元素
    string::iterator it1;//it1是能读写的string对象中的字符
    vector<int>::const_iterator it2;//it2只能读元素,不能写元素
    string::const_iterator it3;//it3只能读字符,不能写字符
    

    例子,使用迭代器依次输出text的每一行知道遇到第一个空白行为止:

    for(auto it=text.cbegin();it!=text.cend()&&!it->empty();++it)
    {
       cout<<*it<<endl;
    }
    

    cbegin()等价于const_begin();cend()等价于const_end()

    展开全文
  • c++的vector容器

    2014-01-08 18:10:12
    c++还有一个很常用容器就是vector容器,他是数组实现,是一种可变长容器,在很多时候可以简化我们编程。 使用vector需要添加头文件 #include 然后using std::vector 或者using namespace std; ...
    c++还有一个很常用的容器就是vector容器,他是数组实现的,是一种可变长的容器,在很多的时候可以简化我们的编程。


    使用vector需要添加头文件
    #include  <vector>
    然后using std::vector
    或者using namespace std;


    vector的初始化以及定义


    由于vector是一种函数模版,所以系统也不知道vector的每一个元素是什么类型,所以需要我们来制定,定义一个int类型的向量容器的时候,vector<int>  a;就可以定义一个元素是int的向量容器。
    初始化的方法有以下几种:
    vector<int> a(b)//用其他的向量来初始化一个向量。
    vector<int> a(3,1)//初始化向量为3个1
    vector<int> a{1,2,3};//初始化向量为1,2,3


    向vector容器中添加元素


    需要用类内置的push_back方法,就可以添加一个元素到类的最后边,就好像栈一样。


    其他的操作类似于string容器一样,+,+=,比较符号,
    展开全文
  • ArrayList和C++的vector

    千次阅读 2016-12-05 20:32:08
    最近找到了研究算法串行代码,但是需要改写成C。...遇到了arraylist和vector互相转换问题。C++拷贝构造函数确实是个考验。这里找了一个相关问题例子。http://www.cnblogs.com/lihaozy/p/3182618.html
  • C++ vector中实际删除元素使用是容器vecrot中std::vector::erase()方法。C++ 中std::remove()并不删除元素,因为容器size()没有变化,只是元素替换。1.std::vector::erase() 函数原型:iterator erase ...
  • C++_vector操作

    万次阅读 多人点赞 2019-05-28 11:24:15
    vector是向量类型,可以容纳许多类型数据,因此也被称为容器 (可以理解为动态数组,是封装好了类) vector头文件-vector vector初始化: 方式1. vector<int>a(10);//定义具有10个整型元素向量...
  • ``` class Person { ... vector<CString> vecfriends;... vector<CString> vecgroup;...vector<Person> vecperson;...像这样嵌套,我要访问person中friends每一个元素 应该怎么实现,代码怎么写
  • C语言实现类似于C++的Vector容器

    千次阅读 2012-03-16 11:29:39
    C语言实现类似于C++的Vector容器   #include #include #include //=============================Starting to define my Array class========================= //-----------------------------...
  • C++ 的Vector类的简单实现

    千次阅读 2019-05-03 08:44:32
    cout<<"alloc size = "<<vector1.capacity(),size = "<<vector1.size(); } int main(){ myVector<int> myVector1; myVector<int> myVector2(0,10); myVector2.push_front(1); myVector2.erase(11); ...
  • c++ 的vector、array和数组的比较

    千次阅读 2018-03-29 21:49:30
    6397在c++11中,STL中提拱了一个新容器std::array,该容器在某些程度上替代了之前版本std::vector的使用,更可以替代之前自建数组使用。那针对这三种不同使用方式,先简单做个比较:相同点:1. 三者均...
  • 假如vector中存放100个string(不是指针类型string*,而是string),那么如果vector一个元素重新分配空间,会不会造成整个vector重新分配空间呢?假如代码如下: vector<string> *v1 = new vector(100); v1[20]....
  • c++的vector赋值方法汇总

    千次阅读 2017-10-10 09:50:19
    #include #include using namespace std; void main() ... vectorivec1(10,42); //内置方法,初始化内容为10个42 vectorivec2(10); vector::size_type ix=0; for(ix;ix
  • C++ 的vector和数组耗时对比

    千次阅读 2019-08-07 18:08:56
    最近 有运行效率提升需求代码,用vector是很方便实现,而用数组却很难实现。没想到通过效率对比实验发现,vecctor做赋值、自身乘法运算效率不到数组1/100.当下列代码中j上限取10000时,用数组做出来运行...
  • vector可用于代替C中数组,或者MFC中CArray,从许多说明文档或者网上评论,一般一致认为应该多用vector,因为它效率更高,而且具备很好异常安全性。而且vector是STL推荐使用默认容器,除非你知道你有特殊...
  • c++的vector和iterator实现

    千次阅读 2017-04-11 10:45:18
    #include "vector" using namespace std; template class mvector { private: T *p; unsigned int size; unsigned int n; public: mvector() { p=(T*)malloc(10*sizeof(T)); s
  • 论Java的ArrayList.add(e)和C++的vector.push_back(e)的区别 Java的ArrayList和C++的vector很类似,都是很基本的线性数据结构。但是他们的表现却不同。 在工作中碰到一个问题就是,搞不清楚到底传进去的是一个新...
  • 转载自 点击打开链接 :http://www.cnblogs.com/wxmdevelop/p/4600762.html
  • #include<iostream>...vector> using namespace std; class Student { public: string m_Name; int m_Age; Student(string name, int age) { m_Name = name; m_Age = age; } }; void te...
  • C++的vector容器使用qsort()和sort()

    千次阅读 2020-04-13 17:58:54
    vector容器定义数组可以使用sort排序 vector<int> test; sort(test.begin(),test.end()); 但是使用qsort时, qsort(numbers,len,sizeof(int),compare);//错误用法 int compare(const void * arg1, ...
  • 我在cpp文件开头,创建动态数组:vector<long double>array;然后在主函数里重置array数组长度array.resize(5);运行时提示array未定义。可是,我明明在使用之前已经创建了。
  • 第一个参数要用迭代器,v.begin()+x确定放位置。 **v.insert(v.begin()+x,y)** 将一个整数按从左到右放到vector中: int maxx=12345; vector<int> v; while(maxx!=0) { int c=maxx%10; maxx=maxx...
  • c++面试题:从cin读入一组词并把它们存入一个vector对象,然后设法把所有词都改写为大写字母
  • C++vector的使用方法

    万次阅读 多人点赞 2016-02-01 10:21:20
    C++vector的使用方法(纯干货!)
  • resize()是重新调整容器大小,这个大小可以为零,在新大小比原来要大时保留原来数据, 而reserve(),顾名思义,保留部分空间, 也有resize()味道。具体说说, resize(1000)是分配1000个元素空间,并在每个...
  • #include #include #include using namespace std;... vector v; v.push_back(1); v.push_back(2); v.push_back(3); if( find(v.begin(), v.end(), 1) == v.end()) { cout << "no1" << end

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 32,738
精华内容 13,095
关键字:

c++的vector

c++ 订阅