我目前正在如下宣告我的向量
std::vector<std::vector<int>> test(5, std::vector<int>(2,0));
然后我像這樣訪問它
`
for (int i = 0; i < 5; i ) {
std::cin >> test[i][0];
std::cin >> test[i][1];
}
` 由于向量是靜態的(5 行,2 列),我想通過使用 push_back 使其變數(行變數,列 staitc)。但是,我不知道如何訪問各個列。也許有人可以幫助我。
我已經嘗試使用它來訪問它,
test.at(i).at(0)但
test.at(i).at(1)它不起作用。雖然我找到了這個解決方案`
#include <iostream>
#include <vector>
using namespace std;
int main() {
std::vector<std::vector<int> >nns;
int i = 5;
nns.push_back(std::vector<int> {i});
for(int i = 0; i <nns.size(); i )
{
for(int j = 0; j < nns[i].size(); j )
{
std::cout << nns[i][j] << std::endl;
}
}
}
` 但是你必須定義一個靜態大小(int i = 5)。
uj5u.com熱心網友回復:
您知道如何將向量推入向量的向量中。你寫了這個:
nns.push_back(std::vector<int> {i});
您不必在i此處指定大小,您可以推送一個空向量
nns.push_back({});
現在nns只有一個元素。nns[0]有0元素。將元素推送到的nns[0]作業方式完全相同,只是它的元素不是向量而是整數:
nns[0].push_back(42);
如果你這樣做m-times 那么nn[0]會有m元素。也resize適用于內部和外部向量。例如獲取n元素(向量),每個m元素(整數):
nns.resize(n);
for (int i=0; i<nn.size(); i) nns[0].resize(m);
TL;DR 嵌套向量沒有什么特別之處。外部向量的作業方式與內部向量完全相同。您可以使用或不使用元素來構造它們,并且可以推送元素或調整它們的大小。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/525553.html
標籤:C 向量stl
下一篇:通過安全地最小化填充來優化類布局
