j*****y 发帖数: 1071 | 1 写了一个,欢迎测试
#include
#include
#include
#include
#include
using namespace std;
bool isNumber(string s)
{
if(s[0] == '+' || s[0] == '-' || s[0] == '(' || s[0] == ')')
{
return false;
}
return true;
}
int helper(int a, int b, char c)
{
if(c == '+')
{
return a + b;
}
else
{
return a - b;
}
}
bool valid(vector &s)
{
stack v;
stack c;
for(int i = 0; i < s.size(); ++i)
... 阅读全帖 |
|
b******7 发帖数: 92 | 2 数组作参数要带上长度
void func(int a[],size_t len)
c/c++不能直接用参数传递数组,而将其转化为指针传递
上面的定义等价于void func(int * a,size_t len)
测试如下的case就可知道
void func(int a[], size_t len)
{
cout<
}
int main()
{
int a[] = {1,2};
cout<
func(a,sizeof(a)/sizeof(int));
return 0;
} |
|
d**********x 发帖数: 4083 | 3 c++一般都用const vector&吧
或者用这玩意:
#include
using namespace std;
template
void foo(int (&arr)[N]) {
cout << N << endl;
cout << sizeof(arr) << endl;
}
int main() {
int a[10];
foo(a);
return 0;
} |
|
r*******n 发帖数: 3020 | 4 one scan solution.
using namespace std;
void mostRepeatedChar(const string& s){
if(s.size()<2){
cout<
return;
}
int count = 1;
int maxCount = -1;
string result;
for(int i=1; i
if(s[i] == s[i-1]&& i!=s.size()-1){
count++;
continue;
}else{
if(count>maxCount){
maxCount = count;
result.clear();
result += s[i-1];
}else if(... 阅读全帖 |
|
e*******i 发帖数: 56 | 5 No map is needed. Source is as following:
///////////////
#include
using namespace std;
int findLongest(char *s, char **start)
{
if(!s) return 0;
char first, second;
char *beginOfPreviousChar;
int currMax=0;
char *curr=s;
first=*s;
*start=s;
while(*curr)
{
if(*curr!=first) break;
currMax++;
curr++;
}
if( !*curr ) return currMax; //end of string
else
{
second=*curr;
beginOfPreviousChar=curr... 阅读全帖 |
|
g*******s 发帖数: 2963 | 6 rotate 一个 n*n的bitmap 90度。
我写的是逐行扫或者inplace的四角扫,复杂度都是n^2吧? 也就是说至少每个元素要
遍历一次。可是面试官说有更好的方法。并提示我这是bitmap,比如每个pixel可以存
8bit的value。
最后还是没想出来有什么跟币bitmap优化的方法。。。。。大家能提示下么?
顺带求解的bug, 谁能从原理上分析下为甚下面的code会crash么?
class A
{
public:
~A(){cout<<"kill A"<
};
class B : public A
{
public:
virtual ~B(){cout<<"kill B"<
};
int main()
{
A* b = new B();
delete b;
return 0;
} |
|
g*********e 发帖数: 14401 | 7 #include
#include
#include
using namespace std;
double getRand() {
double ran=rand()/(double)RAND_MAX;
return ran;
}
int main() {
double E=0;
double sum=0;
double A=getRand();
sum=A;
double B;
int count=1;
double total;
int times=100000;
for(int i=0;i
count=1;
A=getRand();
sum=A;
while(B=getRand()){
sum+=B;
count++;
if(B>=A)
break;
else {
A=B;
}
}
E=sum/count;
... 阅读全帖 |
|
a******e 发帖数: 124 | 8 可以在main函数里delete掉,或者建一个新的function专门delete dynamically
located pointer吧.
如下例
http://www.codeproject.com/Articles/21909/Introduction-to-dynam
template
T **AllocateDynamicArray( int nRows, int nCols)
{
T **dynamicArray;
dynamicArray = new T*[nRows];
for( int i = 0 ; i < nRows ; i++ )
dynamicArray[i] = new T [nCols];
return dynamicArray;
}
template
void FreeDynamicArray(T** dArray)
{
delete [] *dArray;
delete [] dArray;
}
int main()... 阅读全帖 |
|
p****o 发帖数: 46 | 9 cool. 什么编程语言?第二题, 上个c++:
using namespace std;
list intersect(list intList1, list intList2){
list::const_iterator it1 = intList1.begin();
list::const_iterator it2 = intList2.begin();
list intList3;
while((it1 != intList1.end()) && (it2 != intList2.end())) {
if (*it1 == *it2) {
intList3.push_back(*it1);
++it1;
++it2;
} else if (*it1 < *it2) {
++it1;
... 阅读全帖 |
|
p****o 发帖数: 46 | 10 void online_user(vector &logs){
if (logs.empty()) return;
map table;
for (vector::const_iterator it = logs.begin();
it != logs.end(); ++it){
table[it->login_time]++;
table[it->logout_time]--;
}
float prev = table.begin()->first;
int num = table.begin()->second;
for (map::const_iterator it = ++table.begin();
it!=table.end(); ++it) {
if (it->second!=0) {
cout << "[" << prev << " - " <<... 阅读全帖 |
|
p****o 发帖数: 46 | 11 void online_user(vector &logs){
if (logs.empty()) return;
map table;
for (vector::const_iterator it = logs.begin();
it != logs.end(); ++it){
table[it->login_time]++;
table[it->logout_time]--;
}
float prev = table.begin()->first;
int num = table.begin()->second;
for (map::const_iterator it = ++table.begin();
it!=table.end(); ++it) {
if (it->second!=0) {
cout << "[" << prev << " - " <<... 阅读全帖 |
|
f********a 发帖数: 165 | 12 在constructor里调用virtual function:
c++
struct A
{
A()
{
x();
}
virtual void x()
{
cout<<"A"<
}
};
struct B: public A
{
B()
{
x();
}
void x()
{
cout<<"B"<
}
};
int main()
{
B b;
A* a = new B;
a->x();
}
A
B
A
B
B
如果是java的话: b b b b b
哪位解释下为何c++里是用的父类的而在java里用的子类的。 |
|
q****x 发帖数: 7404 | 13 有auto,完全没必要用auto*啊。下面的x和y类型是一样的。
#include
#include
using namespace std;
class X {
int x;
};
int main() {
auto x = new X;
auto* y = new X;
cout << typeid(x).name() << endl;
cout << typeid(y).name() << endl;
} |
|
y***n 发帖数: 1594 | 14 看了几个人家写的答案,都不是很明白。比如这个。 有么有高手帮忙解释一下。
string convert(string s, int nRows) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
if(nRows <= 1) return s;
string ret;
int zigsize = 2 * nRows - 2;
for(int i = 0; i < nRows; ++i) {
for(int base = i; base
cout<<"base - "<
ret.append(1,s[base]);
if(i > 0 && i < nRows - 1) { /... 阅读全帖 |
|
y***n 发帖数: 1594 | 15 看了几个人家写的答案,都不是很明白。比如这个。 有么有高手帮忙解释一下。
string convert(string s, int nRows) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
if(nRows <= 1) return s;
string ret;
int zigsize = 2 * nRows - 2;
for(int i = 0; i < nRows; ++i) {
for(int base = i; base
cout<<"base - "<
ret.append(1,s[base]);
if(i > 0 && i < nRows - 1) { /... 阅读全帖 |
|
f**********t 发帖数: 1001 | 16 // 一个deque,但是只支持pushBack,pushFront,popBack, 没有popFront
// 给一个1-N的排列,问能否把1-N按照从小到大的顺序push到deque,pop的时机可以
任选
// ,使得pop出的顺序刚好是给定的排列
// 比如: 给定 23145, 那么对12345对应的操作序列是pushBack,pushBack,
popBack,
// pushBack,popBack,popBack,pushBack,popBack,pushBack,popBack
// 要求如果可能,输出任意一个可能的操作序列,如果没有可能的操作序列,输出
// impossible
bool OpSequense(vector vi) {
deque dq;
size_t cur = 0;
vector indexes(vi.size() + 1);
for (size_t i = 0; i < vi.size(); ++i) {
indexes[vi[i]] = i;
}
for (int i =... 阅读全帖 |
|
f**********t 发帖数: 1001 | 17 class Component {
public:
virtual char next() = 0;
virtual bool hasNext() = 0;
virtual void traverse() = 0;
};
class Leaf : public Component {
char val;
bool _hasNext;
public:
Leaf(char v) : val(v), _hasNext(true) { }
char next() {
_hasNext = false;
return val;
}
bool hasNext() {
return _hasNext;
}
void traverse() {
cout << val << ' ';
}
};
class Composite : public Component {
vector children;
size_t _idx = 0;
void goNext() {
while (_... 阅读全帖 |
|
c**y 发帖数: 172 | 18 写了个程序测了一些,没有发现你的说的问题,both (p < q) and (p > q) are
possible, depending on how the parameters are passed. The code below is
compiled with c++ 11.
#include
#include
#include
using namespace std;
void foo(int *p, int *q)
{
while (p
cout << "p < q" <
return;
}
cout << "p > q" << endl;
return;
}
int main() {
int *pa = new int(10);
int *pb = new int(20);
foo(pa, pb);
foo(pb, pa);
return 0;
}
======== output =... 阅读全帖 |
|
w********s 发帖数: 1570 | 19 没人看出bug么?
class MyString {
private:
char* _data;
size_t _len;
void _init_data(const char *s) {
_data = new char[_len+1];
memcpy(_data, s, _len);
_data[_len] = '\0';
}
public:
MyString() {
_data = NULL;
_len = 0;
}
MyString(const char* p) {
_len = strlen (p);
_init_data(p);
}
MyString(const MyString& str) {
_len = str._len;
_init_data(str._data);
std::cout << "Copy Constructor is called! source: " << str._data << std:
:endl;
}
MyStri... 阅读全帖 |
|
w******g 发帖数: 189 | 20 一上来就做题,没有废话。只做一题,但是要求直接编译运行出正确结果。
题目是给定一个word list 和一个target word,要求输出在word list 里跟target
word的edit distance 相差不大于k的所有words。我写了一个基于edit distance的解
法(见下面),程序是要从头到尾都要写,包括main函数和test数据。写完后他问有没有
更好的解法,我说可以用trie,但是我不觉得我能在剩余时间里写得出来基于trie的解
法,就大致说了一下我认为的思路。在此也求大牛给一个基于trie解法的code。
======================
#include
#include
#include
#include
using namespace std;
//k=1
// word_list = ['dat', 'bat', 'batt', 'beetle']
// similar(query, word_list)
// similar('cat', word... 阅读全帖 |
|
w******g 发帖数: 189 | 21 一上来就做题,没有废话。只做一题,但是要求直接编译运行出正确结果。
题目是给定一个word list 和一个target word,要求输出在word list 里跟target
word的edit distance 相差不大于k的所有words。我写了一个基于edit distance的解
法(见下面),程序是要从头到尾都要写,包括main函数和test数据。写完后他问有没有
更好的解法,我说可以用trie,但是我不觉得我能在剩余时间里写得出来基于trie的解
法,就大致说了一下我认为的思路。在此也求大牛给一个基于trie解法的code。
======================
#include
#include
#include
#include
using namespace std;
//k=1
// word_list = ['dat', 'bat', 'batt', 'beetle']
// similar(query, word_list)
// similar('cat', word... 阅读全帖 |
|
p********4 发帖数: 58 | 22 我的理解,应该在vector中放地址,而不是object本身。这样才能实现多态。你原来的
做法,你的y中都是 class A. 不知道我的理解对不对。
int main()
{
const A a(1);
const B b(3);
const A *x[2] = { &a, &b };
typedef std::vector V;
V y({ &a, &b });
std::cout << x[0]->f() << x[1]->f() << std::endl;
for (auto i : y)
{
std::cout << i->f();
}
std::cout << std::endl;
return 0;
}
output:
14
14 |
|
a****r 发帖数: 87 | 23 找最大的。我写了个版本。如果有错误大家拍吧。
int find_max(vector &A){
if(A.size() == 0){
cout << "no elements!" << endl;
}
if(A.size() == 1) return A[0];
int s = 0;
int e = (int)A.size()-1;
int m;
while(s <= e){
if(s+1 == e) return max(A[s], A[e]);
if(s == e) return A[s];
m = s + (e-s)/2;
if(A[m]> A[m-1] && A[m] > A[m+1]) return A[m];
else if(A[m] > A[m-1] && A[m] < A[m+1]) s = m+1;
else if(A[m] < A[m-1] && A[m] >... 阅读全帖 |
|
e*******i 发帖数: 56 | 24 The last solution has a bug, it will loop forever.
Following is tested to work.
/*****************************************/
int A[4][4]={
{1,1,1,1},
{0,1,1,1},
{0,1,1,1},
{0,0,0,1}
};
struct Delta
{
int dx;
int dy;
};
Delta d[4]={
{0,1}, {1,0}, {-1, 0}, {0,-1} };
void dfs(vector< pair > &edgeTo, int *A, int m, int n, int i, int
j)
{
if( i>=m || j>=n || *(A+i*m+j)!=1 ) return;
edgeTo.push_back( pair(i,... 阅读全帖 |
|
c*******y 发帖数: 98 | 25 面筋都是按行打印,今天让我按列打印。手忙脚乱了一阵。。用了个父节点做出来的。
电面只写了一道题是不是挂了。。
更新题目具体内容:
按列打印,
a
/ \
b c
/
d
/
e
/
f
结果:
f
b e
a d
c
我刚发现,我的方法错了,老印最后没提醒我。已挂无悬念。
现在想到的方法是直接DFS,把column和value放到map
value>里,然后直接用map里的信息打印就好了。空间大一点但简单易操作。
fuck me....
新写了个,大伙看看对不对。。
void dfs(Node* node, int pos, int& left, map>& index){
if (!node) return;
left = left > pos ? pos : left;
if (index.find(pos) == index.end()){
index[pos] = {node->val};
}
... 阅读全帖 |
|
h****g 发帖数: 105 | 26 来自主题: JobHunting版 - 电面题一个 int m=matrix.size();
int n=matrix[0].size();
int i=0;
while(i
int j=0;
int a=i;
do{
cout<
} while(a>=0&&j
i++;
cout<
}
int j=1;
while(j
int i=m-1;
int b=j;
do{
cout<
} while(i>=0&&b
j++;
cout<
} |
|
h****g 发帖数: 105 | 27 来自主题: JobHunting版 - 电面题一个 int m=matrix.size();
int n=matrix[0].size();
int i=0;
while(i
int j=0;
int a=i;
do{
cout<
} while(a>=0&&j
i++;
cout<
}
int j=1;
while(j
int i=m-1;
int b=j;
do{
cout<
} while(i>=0&&b
j++;
cout<
} |
|
f**********t 发帖数: 1001 | 28 void shuffle(vector &vi) {
for (size_t i = 0; i < vi.size(); ++i) {
size_t k = rand() % (vi.size() - i);
swap(vi[i], vi[i + k]);
}
for_each(vi.begin(), vi.end(), [](int x) {
cout << x << ' ';
});
cout << endl;
}
/*
* Example:
* WordDistanceFinder finder = new WordDistanceFinder(Arrays.asList("the",
"quick", "brown", "fox", "quick"));
* assert(finder.distance("fox","the") == 3);
* assert(finder.distance("quick", "fox") == 1);
*/
class WordDistanceFinder {
vector... 阅读全帖 |
|
f**********t 发帖数: 1001 | 29 // * Return the smallest character that is strictly larger than the search
character, * ['c', 'f', 'j', 'p', 'v'], 'a' => 'c'
char MinLarger(string s, char c) {
if (s.empty()) {
throw - 1;
}
size_t l = 0;
size_t r = s.size();
while (l < r) {
size_t m = (l + r) / 2;
if (c < s[m]) {
r = m;
} else {
l = m + 1;
}
}
if (l == s.size()) {
throw - 1;
} else {
return s[l];
}
}
void MinLargerTest() {
try {
cout << MinLarger("abcd", 'b') << ' ... 阅读全帖 |
|
f**********t 发帖数: 1001 | 30 class BlockingQueue {
const size_t kBufSize = 10;
// string _buf(10, '\0'); // have to use = for in-place member
initialization
string _buf = string(kBufSize, '\0');
size_t _head = 0, _tail = 0;
condition_variable _cv;
mutex _mx;
public:
/** Retrieve and remove the head of the queue, waiting if no elements
are present. */
char take() {
unique_lock lg(_mx);
_cv.wait(lg, [this](){return _head != _tail;});
char res = _buf[_head];
_head = (1 + _head) % kBufSi... 阅读全帖 |
|
n****e 发帖数: 10 | 31 class Iterator {
public:
Iterator() : cur(0) {};
bool hasNext() {
return cur < 20;
};
int next() {
++cur;
return cur;
};
private:
int cur;
};
int main() {
Iterator it;
int a = it.next();
int b = it.next();
cout << a << " " << b << endl;
cout << it.next() << " " << it.next() << endl;
}
为啥输出是
1 2
4 3
而不是
1 2
3 4 |
|
d******a 发帖数: 238 | 32 这是他要求的。这样可以这样调用
int v;
iterator iter(array);
while(iter.next(&v))
cout << v << endl;
而不用像一般的下面这样调用
while (iter.has_next())
cout << iter.next() << endl; |
|
T****U 发帖数: 3344 | 33 这应该是烙印的版本,给两个100的vectors
http://www.geeksforgeeks.org/print-binary-tree-vertical-order/
后面问答区一个烙印贴的
vector v1[100];
vector v2[100];
void VerticalOrder(struct BstNode* root, int index) {
if(!root) return;
if(index < 0) {
v1[-1*index].push_back(root->data);
}
else {
v2[index].push_back(root->data);
}
VerticalOrder(root->left, index - 1);
VerticalOrder(root->right, index + 1);
}
int main()
{
struct BstNode* root = NULL;
root = insert(roo... 阅读全帖 |
|
T****U 发帖数: 3344 | 34 这应该是烙印的版本,给两个100的vectors
http://www.geeksforgeeks.org/print-binary-tree-vertical-order/
后面问答区一个烙印贴的
vector v1[100];
vector v2[100];
void VerticalOrder(struct BstNode* root, int index) {
if(!root) return;
if(index < 0) {
v1[-1*index].push_back(root->data);
}
else {
v2[index].push_back(root->data);
}
VerticalOrder(root->left, index - 1);
VerticalOrder(root->right, index + 1);
}
int main()
{
struct BstNode* root = NULL;
root = insert(roo... 阅读全帖 |
|
y******g 发帖数: 4 | 35 How about this solution?
#include
#include
#include
using namespace std;
void print(vector &A) {
cout << "[";
int counter = 0;
for_each(A.begin(), A.end(), [&](int i) {
if (counter++) {
cout << ", ";
}
cout << i;
});
cout << "]" << endl;
};
vector solve(vector &A) {
vector result;
if (!A.empty()) {
vector candidates;
for (int i = (int)A.size(); i >=... 阅读全帖 |
|
b********n 发帖数: 609 | 36 按着思路写了一个,是work的。
"
#include
class A {
public:
class Adapter {
public:
Adapter(A& parent)
: ref(parent.a) {
}
private:
friend class B;
int& ref;
};
A() : a(0), i(*this) {
}
Adapter& getAdapter() {
return i;
}
int getNum() const {
return a;
}
private:
int a;
Adapter i;
};
class B {
public:
void changeNum(A& a, int x) {
A::Adapter& i = a.getAdapter();
i.ref = x;
}
};
int main() {
A a;
std::cout << "Original value: " <<... 阅读全帖 |
|
e**y 发帖数: 784 | 37 格式都坏了,凑合看吧
这是airbnb的电面题
// [123,456,[788,799,833],[[]],10,[]]
// 123->456->788(list)->[](list)->10->(list)
// 799
// 833
class nestedList {
private:
bool isNumber;
list l;
int val;
public:
nestedList(string, int&);
void print();
};
nestedList::nestedList(string s, int& index) {
if(index==s.length()) return;
// object is a number
if(isdigit(s[index])) {
size_t sz;
val=stoi(s.substr(index), &sz);
// cout << "index==" << index << endl;
// cout << "value==" << val << endl;
isNumber=true;... 阅读全帖 |
|
R*********4 发帖数: 293 | 38 A[i++] A[++i++]
这些东西,只有谭浩强的测试题才用。而且懂这个东西一点意义都没有。为了条例清楚
,你尽量避免用这个东西,特别是在面试中。
主要没看到你的题目,我不好评论。
似乎我的感觉是,考试题目,是想要你用 二分法(B search)。但是你用了线性。
这个似乎是差了几个数量级。
比如一个array是事先排好序的。加入有一百万个,用B search找到想要的东西,次数
一般不会超过50次。你线性下去i++,那不知道有多少次了。
这是一小段测试程序:假设都是10000次
time_t start, finish;
int num = 0;
list col;
start = clock();
for(int i=0;i<10000;++i){
col.push_back(i);
num += col.size();
}
finish = clock();
cout<
col.clear();
start = c... 阅读全帖 |
|
z*********n 发帖数: 1451 | 39
也放松一下,贴个以前写的编译时间计算int to Roman number的C++ metaprogramming
, 学生时在实验室天天就玩这种东西了:
class R2I {
const static int DIG;
public:
constexpr static char IN[] = "MCDXLVI"; ///This is the INPUT number;
const static int OUT;
};
template struct ID {};
template <> struct ID <'I'> { static const int I = 0; static const int V = 1
; };
template <> struct ID <'V'> { static const int I = 1; static const int V = 5
; };
template <> struct ID <'X'> { static const int I = 2; static const int V =
10... 阅读全帖 |
|
M**********o 发帖数: 287 | 40 string whoisthat=MashiMaroToo.currentuser();
string answer=MashiMacroToo.idtype();
cout<<"The current user is "<
cout<<“这个马夹是 ”<
Press F5 to compile... ...
Run!
The current user is Pilot
这个马夹是 ****
private message zlltt for ****. |
|
z******d 发帖数: 302 | 41 int main(int argc,char *argv[])
{
if(这是一个坑)
{
printf("这个坑挖得够深了");
printf("谢谢光临!");
exit(0);
}
else
{
cout<<"欢迎当小白!"<
exit(0);
}
} |
|
a***n 发帖数: 1 | 42 int* LinearSuffixSort(char*& inputString, int& stringLength);
Modify the statement:
cout << LinearSuffixSort(fileName,7) << endl;
to
int i=0;
cout << LinearSuffixSort(fileName,i) << endl;
This is because the function prototype is
int* (char*& , int&);
Whenever you want to reference to som obj, you have to allocate memory for
that obj first. |
|
g**u 发帖数: 504 | 43 我把完整代码贴出来吧,这个是BSTree.h文件如下:
#include
#include
using namespace std;
template
class BinarySearchTree
{
public:
struct tree_node
{
tree_node* left;
tree_node* right;
T data;
};
public:
BinarySearchTree(){ root = NULL; }
bool isEmpty() const { return root==NULL; }
void insert(T);
void print_search(T);
private:
tree_node* search(tree_node*,T);
private:
tree_node* root;
};
template
void BinarySearchTree<... 阅读全帖 |
|
l***i 发帖数: 168 | 44 呵呵,你解释得很明白。谢谢。
在C++里可以用pointer的reference直接改变一个memory location的值,比如下面这个
#include
using namespace std;
void update(int*);
int main()
{
int x = 5;
int* pi = &x;
cout << "Before update, " << x << endl;
update(pi);
cout << "After update, " << x << endl;
return 0;
}
void update(int* t)
{
*t = 8;
}
输出是
Before update, 5
After update, 8
是不是可以说,在java里 没有相应的功能?
node |
|
u*********r 发帖数: 2735 | 45 this statement is wrong: "const的reference只能指向const变量"
const reference only means the reference itself can not be used to modify
what it refers to. the target does not have to be const.
try this:
int i = 0;
const int& x = i;
std::cout << x << std::endl;
i = 4;
std::cout << x << std::endl;
// x = 6; // compiling error |
|
m***a 发帖数: 4 | 46 hey, thanks for pointing out that.
but anyone can explain this:
#include
class A
{
public:
static int i;
unsigned char * buf;
int j;
A(){i++; j = i; buf = new unsigned char[4*4096];cout<<"Construction:"<
endl;};
~A(){ delete [] buf;cout<<"Deconstruction:"<
};
int A::i;
main()
{
A a;
A aaa;
aaa = a;
A aaaa = a;
}
the output is
Construction:1
Construction:2
Deconstruction:1
Deconstruction:1
Deconstruction:1
Quite surpring! Why not prompt 'segmentation |
|
s*****n 发帖数: 1279 | 47 以前用C++都是在interpreter的环境下,现在想编译,发现好多都不懂。大家帮我看看下
面这个程序:
#include
#include
#include
#include
#include
int main (int argc, char **argv)
{
int iarg = 1;
char root_file_name[256];
strcpy (single_file_name,argv[1]);
strcpy (root_file_name, argv[2]);
ofstream decayresults(root_file_name);
decayresults.close();
cout<<"That's all"<
}//end of main
然后我用下面的Makefile编译总是通不过,说是ofstream,cout, endl 都没有定义。难
道不是只要include , |
|
Q**g 发帖数: 183 | 48 whenever you pass an array as an argument to a function call, it is actually
treated as a pointer. The size information is lost to the function.
try this simple one:
#include
using namespace std;
void f(char *array[]){
cout<<"in function, sizeof(array)="<
}
int main(){
char *a[20] = {"abc","def","ghik"};
cout<<"in main, sizeof(a)="<
f(a);
return 0;
} |
|
s**i 发帖数: 381 | 49 Suppose I have the following class:
class test{
public:
void func() const
{
cout<<"hello,func const"<
}
void func()
{
cout<<"hello,func"<
}
};
when A is an object of test.
What will A.func() give me?
My test says always the "hello,func" but I don't know why.
Thanks |
|
n*****e 发帖数: 17 | 50 我知道operator overloading 是不能参数一样的
可是这里有一个是constructor,所以不知道会不会有特别
我写了一个test program,好像没有问题,可是程序复杂了,好像有问题,很奇怪
如果要实现这样的两维数组想表示成p(i,j)或者别的某种形式,怎么做比较好?请大侠
帮忙!
test program 如下:
#include
#include "Point.h"
using namespace std;
int main() {
Point pt(2,2);
pt(1,1)=1.;
cout<<"pt[1][1]= "<
cout<<"pt[0][0]= "<
return 0;
}
先是结果为:
pt[1][1]=1
pt[0][0]=0 |
|