c++利用vector創(chuàng)建二維數(shù)組的幾種方法總結(jié)
更新時(shí)間:2022年11月09日 09:58:57 作者:OnlyForBetter
這篇文章主要介紹了c++利用vector創(chuàng)建二維數(shù)組的幾種方法總結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
用vector創(chuàng)建二維數(shù)組的幾種方法
方法一
#include <iostream>
#include <vector>
using namespace std;
?
void test01() {
? ? ?//創(chuàng)建一個(gè)外層容器
?? ?vector<vector<int>>v;
? ? //創(chuàng)建一些內(nèi)層容器,并賦值
?? ?vector<int>v1(10,1);
?? ?vector<int>v2(10,2);
?? ?vector<int>v3(10,3);
? ? //將內(nèi)層小容器插入到大容器之中,類似于二維數(shù)組。
?? ?v.push_back(v1);
?? ?v.push_back(v2);
?? ?v.push_back(v3);
}遍歷訪問(wèn):
1.便于理解法
for (int i = 0; i < 3; i++) {
? ? ? ? for (int j = 0; j < 10; j++) {
? ? ? ? ? ? cout << v[i][j] << " ";
? ? ? ? }
? ? ? ? cout << endl;
? ? }2.對(duì)邏輯能力稍微有點(diǎn)要求
for (vector<vector<int>>::iterator it = v.begin(); it != v.end(); it++) {
? ? ? ? for (vector<int>::iterator it1 = (*it).begin(); it1 != (*it).end(); it1++) {
? ? ? ? ? ? cout << *it1 << " ";
? ? ? ? }
? ? ? ? cout << endl;
? ? }方法二:一維擴(kuò)充法
#include <iostream>
#include <vector> //如果想用vector必須包含對(duì)應(yīng)頭文件
using namespace std;
?
int main()
{
?? ?vector<vector<int> > vec(m); //這里m就是相當(dāng)于二維數(shù)組的行數(shù),必須寫,不然報(bào)錯(cuò)
?? ?
?? ?//這里創(chuàng)建一個(gè)m*n的二維vector
?? ?for(int i = 0;i<m;i++)
?? ?{//這里是給內(nèi)層vector定義大小。默認(rèn)是0,這里n是個(gè)數(shù),不是值
?
?? ??? ?vec[i].resize(n); ?//利用resize進(jìn)行擴(kuò)充
?? ?}
?
?
? ?//賦值,我嘗試了一下vec.[i].push_back(10)來(lái)為其賦值,不過(guò)失敗了,可能不可以這樣做。
? ?for (int i = 0; i < 3; i++) {
?? ??? ?for (int j = 0; j < 5; j++) {
?? ??? ??? ?vec[i][j] = j + 100;
?? ??? ?}
?? ?}
?? ?
?? ?system("pause");
?? ?return 0;
}vector定義二維數(shù)組的輸入和輸出
1.方式一
#include <iostream>
using namespace std;
#include <vector>
int main()
{
?? ?vector<vector<int>> matrix = { {1,2,3},{4,5,6} };
?? ?for (int i = 0; i < matrix.size(); i++) {
?? ??? ?for (int j = 0; j < matrix[i].size(); j++) {
?? ??? ??? ?cout << matrix[i][j]<<" " ;
?? ??? ?}
?? ??? ?cout << endl;
?? ?}
?? ?system("pause");
?? ?return 0;
}1.方式二
#include <iostream>
using namespace std;
#include <vector>
int main()
{
?? ?int r = 0, c = 0;
?? ?cout << "輸出行數(shù) r: ";//規(guī)定二維數(shù)組行數(shù)
?? ?cin >> r;
?? ?cout << "輸入列數(shù) c: ";//規(guī)定二維數(shù)組列數(shù)
?? ?cin >> c;
?? ?vector<vector<int>> array;//定義二維數(shù)組
?? ?vector<int>v;//定義一維數(shù)組
?? ?array.clear();//將二維數(shù)組清空,或初始化(初始化代碼很簡(jiǎn)單,不會(huì)可以百度)//也可不用這一步
?? ?int temp = 0;
?? ?for (int i = 0; i < r; i++)//輸入r*c的二維數(shù)組
?? ?{
?? ??? ?cout << "開(kāi)始輸入第 " << i + 1 << " 行 " << endl;
?? ??? ?v.clear();//子數(shù)組返回時(shí)要清除
?? ??? ?for (int j = 0; j < c; j++)
?? ??? ?{
?? ??? ??? ?cout << "輸入第 " << j + 1 << " 列中數(shù)字:";
?? ??? ??? ?cin >> temp;
?? ??? ??? ?v.push_back(temp);
?? ??? ?}
?? ??? ?array.push_back(v);
?? ?}
?? ?cout << "數(shù)組為:" << endl;
?? ?for (int i = 0; i < r; i++)//打印輸入的二維數(shù)組
?? ?{
?? ??? ?for (int j = 0; j < c; j++)
?? ??? ?{
?? ??? ??? ?cout << array[i][j] << " ";
?? ??? ?}
?? ??? ?printf("\n");
?? ?}
?? ?system("pause");
?? ?return 0;
}2.方式三
#include <string>
#include <iostream>
#include <vector>
using namespace std;
int main()
{
?? ?vector<vector<int>>c(2, vector<int>(6));
?? ?for (int i = 0; i < c.size(); i++)
?? ?{
?? ??? ?for (int j = 0; j < c[i].size(); j++)
?? ??? ?{
?? ??? ??? ?cout << c[i][j] << " ";
?? ??? ?}
?? ??? ?cout << "\n";
?? ?}
?? ?system("pause");
?? ?return 0;
}以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
您可能感興趣的文章:
- VS2019創(chuàng)建C++工程的的實(shí)現(xiàn)步驟
- VS2019創(chuàng)建c++動(dòng)態(tài)鏈接庫(kù)dll與調(diào)用方法實(shí)踐
- Visual Studio 如何創(chuàng)建C/C++項(xiàng)目問(wèn)題
- Visual Studio 2022 的安裝和創(chuàng)建C++項(xiàng)目(圖文教程)
- VS2019如何創(chuàng)建C++項(xiàng)目的實(shí)現(xiàn)示例
- 探索Visual C++下創(chuàng)建WPF項(xiàng)目的方法示例
- 如何使用visual studio2019創(chuàng)建簡(jiǎn)單的MFC窗口(使用C++)
- Visual Studio 2019創(chuàng)建C++ Hello World項(xiàng)目的方法
- 在Visual Studio中用C++語(yǔ)言創(chuàng)建DLL動(dòng)態(tài)鏈接庫(kù)圖文教程
- VC++創(chuàng)建msi文件的方法
- VC++6.0中創(chuàng)建C++項(xiàng)目的實(shí)現(xiàn)步驟
相關(guān)文章
C++實(shí)用庫(kù)之DNS解析的實(shí)現(xiàn)
DNS解析是一種將域名轉(zhuǎn)換為相應(yīng)的IP地址的過(guò)程,本文主要介紹了C++實(shí)用庫(kù)之DNS解析的實(shí)現(xiàn),實(shí)現(xiàn)了快速、準(zhǔn)確的域名到IP地址的轉(zhuǎn)換,感興趣的可以了解一下2025-03-03
C語(yǔ)言 棧的表示和實(shí)現(xiàn)詳細(xì)介紹
這篇文章主要介紹了C語(yǔ)言 棧的表示和實(shí)現(xiàn)詳細(xì)介紹的相關(guān)資料,需要的朋友可以參考下2016-12-12
淺談C語(yǔ)言中的指針和數(shù)組有什么區(qū)別
C語(yǔ)言中的指針和數(shù)組是兩個(gè)重要的數(shù)據(jù)結(jié)構(gòu),它們?cè)趦?nèi)存管理和數(shù)據(jù)存儲(chǔ)方面有許多相似之處,但也存在一些關(guān)鍵的區(qū)別,本文就來(lái)介紹一下C語(yǔ)言中的指針和數(shù)組有什么區(qū)別,具有一定的參考價(jià)值,感興趣的可以了解一下2023-09-09
C語(yǔ)言銀行系統(tǒng)課程設(shè)計(jì)
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言銀行系統(tǒng)課程設(shè)計(jì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01
C語(yǔ)言實(shí)現(xiàn)電話訂餐管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)電話訂餐管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01
C語(yǔ)言實(shí)現(xiàn)用?*?打印X形圖案
這篇文章主要介紹了C語(yǔ)言實(shí)現(xiàn)用?*?打印X形圖案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11
C語(yǔ)言詳細(xì)講解if語(yǔ)句與switch語(yǔ)句的用法
用 if 語(yǔ)句可以構(gòu)成分支結(jié)構(gòu),它根據(jù)給的條件進(jìn)行判定,以決定執(zhí)行哪個(gè)分支程序段,C 語(yǔ)言中還有另外一種分支語(yǔ)句,就是 switch 語(yǔ)句2022-05-05

