将类型对列表的向量大小设置为类中用户给定的大小

Posted

技术标签:

【中文标题】将类型对列表的向量大小设置为类中用户给定的大小【英文标题】:setting size of vector of list of type pair to user given size in class 【发布时间】:2019-11-30 18:41:25 【问题描述】:

刚刚接触 c++ stl 中的图形,如果它是初学者级别的问题,我很抱歉。请告诉我如何设置列表向量的大小

#include <bits/stdc++.h>

#include <iostream>
using namespace std;
class my_graph 
 public:
  int vertices;
  list<pair<int, int>> *adjacency_list;
  vector<list<pair<int, int>>> adjacencyList;

  my_graph(int ver) 
    this->vertices = ver;
    adjacency_list = new list<pair<int, int>>[vertices];

    // what should i type here to make the size of
    // vector type adjacencyList
    // to user defined size in this constructor.
    // just like i did for list type adjacency_list
  
;

【问题讨论】:

你试过保留方法link to info on cppreference 你在找std::vector::resize吗? @Toothless204 reserve() 只改变capacity(),而不是size() Why should I not #include <bits/stdc++.h>? ayxan 是所有 c++ stl 类算法、数据结构(如(堆栈、队列、列表、向量)、iostream 等)的集合,只需包含此库并使用任何c++ stl函数流利。它就像一个图书馆的集合去quora.com/What-is-the-file-bits-stdc++-h 【参考方案1】:

你可以使用 resize() 方法。

class my_graph 
public:

    int vertices;
    list<pair<int, int>> *adjacency_list;
    vector< list< pair<int, int> > > adjacencyList;

    my_graph(int ver) 
        this->vertices = ver;
        adjacency_list = new list<pair<int, int>>[vertices];
        adjacencyList.resize(vertices);
    
;

【讨论】:

以上是关于将类型对列表的向量大小设置为类中用户给定的大小的主要内容,如果未能解决你的问题,请参考以下文章

如何创建给定类型的列表列表,其中大小可能因输入而异?

Javascript为类中的所有元素设置href [关闭]

将具有不同大小向量的列表转换为平面向量

根据另一个不同大小和类型的向量对点向量进行排序

如何使用大小和值构造函数使用成员初始化器列表初始化用户定义对象的向量

pb中如何统一设置数据窗口字体大小