C++初心者です。
MinGWのg++コンパイラを用いてC++のプログラミングをしているのですが、プログラム中で一回でもvectorを用いると出力に何も表示されなくなってしまいます。vectorを1つでも宣言した時点で駄目になります。コンパイル・実行は何の問題もなく通ります。自分の書いたコードが間違っているのかもしれないと思い、std::vectorを用いた簡単なプログラムをネットからいくつか引っ張ってきてそのまま実行してみましたが、同様に何も出力されませんでした。
g++とstd::vectorの相性が悪いのでしょうか?
[追記]
1.) g++のバージョンは以下の通りです.
g++ --version g++.exe (MinGW.org GCC-6.3.0-1) 6.3.0 Copyright (C) 2016 Free Software Foundation, Inc.
2.) git bash上でコンパイル(MinGW/bin/g++.exe hoge.cpp)、実行(./a.exe)しています.
3.) 実行したプログラムは以下の通りです.シェルソート(http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=ALDS1_2_D)を行うプログラムになります.
cpp
1#include<cstdio> 2#include<algorithm> 3#include<vector> 4using namespace std; 5 6long long cnt; 7int l; 8int A[1000000]; 9int n; 10vector<int> G; 11 12void insertionSort(int A[], int n , int g){ 13 for(int i = g; i < n; i++){ 14 int v = A[i]; 15 int j = i-g; 16 while(j >= 0 && A[j] > v){ 17 A[j+g] = A[j]; 18 j -= g; 19 cnt++; 20 } 21 A[j+g] = v; 22 } 23} 24 25void shellSort(int A[], int n){ 26 int h = 1; 27 while(h <= n){ 28 G.push_back(h); 29 h = 3*h + 1; 30 } 31 32 for(int i = G.size()-1; i >= 0; i--){ 33 insertionSort(A, n, G[i]); 34 } 35} 36 37int main(){ 38 scanf("%d" , &n); 39 for(int i = 0; i < n; i++){ 40 scanf("%d" , &A[i]); 41 } 42 43 cnt = 0; 44 shellSort(A,n); 45 46 printf("%d\n", G.size()); 47 for(int i = G.size()-1; i >= 0; i--){ 48 printf("%d\n",G[i]); 49 } 50 51 for(int i = 0; i < n; i++){ 52 printf("%d\n", A[i]); 53 } 54 55 return 0; 56} 57
4.) プログラムを引っ張ってきたサイトはC++の日本語リファレンス(https://cpprefjp.github.io/reference/vector.html)です.
5.) 今cmd.exe上で同様にコンパイル・実行してみたところ、実行時に
プロシージャエントリポイント__gxx_personality_v0がダイナミックライブラリ(a.exeのPATH)から見つかりませんでした。
とのエラーダイアログが出ました.
今のところ考えつく情報はこれくらいです.よろしくお願いします.
回答3件
あなたの回答
tips
プレビュー