1. 程式人生 > >vector 二維陣列的push_back,stl演算法庫中的sort排序,vector insert 用法

vector 二維陣列的push_back,stl演算法庫中的sort排序,vector insert 用法

1.vector 二維陣列的push_back

vector<vector<int> >vec;
vector<int>array1;
    for (int i=0;i<num;i++)
    {
        cin>>length;
        for (int j=0;j<length;j++)
        {
            cin>>a;
            array1.push_back(a);
        }
        array.push_back(array1);
        array1.clear();

    }
    //先定義二維陣列,在定義一個一維陣列,先push_back一個一維陣列,
//然後將一維陣列push_back到二維陣列中

2.stl演算法庫中的sort排序

#include<algorithm>//包含在<algorithm>裡面

它有兩種形式,一種有兩個引數,一種有三個引數
(1)兩個引數
sort的錢兩個引數是起始地址和終止地址

sort(a,a+n)//表示對a[0],a[1]...a[n-1]排序,預設為升序

(2)三個引數(如是降序,必須用三個引數)

bool cmp(int a,int b){
    return a>b;
    }

降序排列比較函式,a>b時為true,不交換;a

sort(a
+1,a+n+1,cmp)//a[1],a[2]...a[n]排序

sort對結構體進行排序:

#include <algorithm>
#include <cstdio>
using namespace std;
struct Node {
    int x,y;
}p[1001];
int n;
int cmp(Node a,Node b) {
    if (a.x != b.x) return a.x < b.x;  //如果a.x不等於b.x,就按x從小到大排
    return a.y < b.y;  //如果x相等按y從小到大排
}
int main() {
    scanf
("%d",&n); for (int i = 1;i <= n;i++) scanf("%d%d",&p[i].x,&p[i].y); sort(p+1,p+n+1,cmp); for (int i = 1;i <= n;i++) scanf("%d %d\n",p[i].x,p[i].y); return 0; }

3.vector insert 用法

vector<int> vec(3);
v[0]=2; //v[0]是第0個元素   
v[1]=7;    
v.insert(v.end(),a[1],a[3]);//在尾部插入a[1]個a[3]  
vecA.insert(vecA.begin() , vecB.begin() , vecB.end() );

刪除元素

刪除區間內的元素
vecInt是用vector<int>宣告的容器,現已包含按順序的1,3,5,6,9元素。
vector<int>::iterator itBegin=vecInt.begin()+1;
vector<int>::iterator itEnd=vecInt.begin()+2;
vecInt.erase(itBegin,itEnd);
//此時容器vecInt包含按順序的1,6,9三個元素。

相關推薦

vector 陣列push_backstl演算法sort排序vector insert 用法

1.vector 二維陣列的push_back vector<vector<int> >vec; vector<int>array1; for (int i=0;i<num;i++) {

c++vector陣列的使用 記錄

#include <iostream> #include <vector> #include <algorithm> using namespace std; bool compare(const vector<int>&

vector陣列初始化

int main() { vector<vector<int> >num = { {1,1,1,0,1,1},{1,0,1,1,1,1},{1,1,1,0,0,1},{1,0,1,0,0,1},{1,1,1,1,1,1} }; //二維陣列

C++ vector陣列

C++ 構建二維動態陣列 int **p; p = new int*[10]; //注意,int*[10]表示一個有10個元素的指標陣列 for (int i = 0; i < 10; ++i) { p[i] = new int[5]; } 這樣就

【C/C++】用指標實現陣列的傳遞、使用的4種示例及各種變形。

請看例程。 #include <stdio.h> #include <stdlib.h> /* *func1:用int a[]傳遞二維陣列 *func2:用int a[][10]傳遞二維陣列 *func3:用int *a[10]傳遞二維 *

vector陣列使用

本文綜述了二維陣列使用,程式碼可以跑一下看看效果。 #include<iostream> #include<vector> using namespace std; //method 1 /* int main() { int row, colum

尋找一個陣列鞍點的演算法實現

題目:找出一個二維陣列中的鞍點(即該位置上的元素在該行上最大,在該列上最小)。一個二維陣列最多隻有一個鞍點,也可能沒有鞍點。 分析:我們可以定義兩個函式,一個為判斷該元素是否是行最大元素,一個判斷

vector陣列和不用vector

#include <iostream> #include<iomanip> using namespace std; int main() { int row; int col; cin>>row>>col; //為

C#泛型列表List實現陣列的功能(令附C#泛型列表List基本用法總結)

          // 搜尋有很多種方式,可以使用IndexOf LastIndexOf FindIndex FindLasIndex Find FindLas ,如果只是檢視元素存不,可以使用Exists()方法          // IndexOf() 方法 需要將一個物件做引數, 如果打到,就返回本

push_back 處理用vector構成的陣列

int main() { int index1 = 2; int index2 = 2; vector<vector<float>> vectorTemp; for (int i = 0; i <

vector的巢狀實現陣列解決矩陣相乘問題

給定兩個矩陣A和B,要求你計算它們的乘積矩陣AB。需要注意的是,只有規模匹配的矩陣才可以相乘。即若A有Ra行、Ca列,B有Rb行、Cb列,則只有Ca與Rb相等時,兩個矩陣才能相乘。輸入格式:輸入先後給出兩個矩陣A和B。對於每個矩陣,首先在一行中給出其行數R和列數C,隨後R行,每行給出C個整數,以1個空格分隔,

前端常見演算法面試題之 - 陣列的查詢[JavaScript解法]

前端常見演算法面試題之 - 二維陣列中的查詢[JavaScript解法] 題目描述 輸入輸出分析 實現思路 程式碼實現 題目描述 在一個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個

C語言 函式返回一位陣列陣列

方法一: 萬能的結構體:構造陣列的結構體,將函式型別定義為此型別 但是考試的時候應該不太方便寫結構體,寫不下也會很麻煩,故介紹方法二 方法二: 指標傳遞: 1、返回一維陣列 例子:將陣列每一位加一: #include<stdio.h> #define N 10 int

寫一個函式使給定的一個陣列(3×3)轉置即行列互換。

import java.util.Scanner; public class Main {     public static void main(String[] args) {       &n

C陣列行為空列不為空

二維陣列: 處理二維陣列得函式有一處可能不太容易理解:陣列的行可以在函式呼叫時傳遞,但是陣列的列卻只能被預置在函式內部。 eg: 1 #define COLS 4 2 int sum(int ar[][COLS],int rows){ 3 int r ; 4 int c;

vector動態陣列傳遞到函式問題

1.還以可以傳指標:vector <vector <CString> > * stationitem = &m_stationitem;這個不需要知道大小。 2.不傳指標 給你個小例子 v

C++找出一個陣列的鞍點即該位置上的元素在該行上最大在該列上最小(也可能沒有鞍點)

今日正式用csdn部落格記錄,回顧我所學到的知識,分享一些我的人生感悟和自身經歷。也希望未來通夠過此平臺和更多喜愛程式設計的人交流學習。 道聽途說再加上自己的感悟,認為程式設計最重要的是思想,而不是語言本身,語言只是個工具。所以我們得先學思想。遇到問題,應該先想如果是自己去做會怎麼處理,但我們不

劍指offer演算法題(一)陣列的查詢

劍指offer演算法題(一) 題目1:二維陣列中的查詢 在一個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函式,輸入這樣的一個二維陣列和一個整數,判斷陣列中是否含有該整數。 思路分析:  從左上往右下方來解決這個問題  例如在

求一個陣列所有子陣列和的最大值(郭少周陳澤)

小組成員:陳澤 郭少周 設計流程:     設計要求.:1. 輸入一個二維整形陣列,數組裡有正數也有負數。                     2.二維陣列中連續的

求一個已知陣列的最大子陣列和(司宇廖強)

小組成員:司宇,廖強 設計流程:            設計介面:               程式設計:1.封裝一個求二維整陣列最大子陣列和的子程式;