由买买提看人间百态

topics

全部话题 - 话题: endles
首页 上页 1 2 3 4 5 6 7 8 9 10 下页 末页 (共10页)
j*****y
发帖数: 1071
1
来自主题: JobHunting版 - F面经
写了一个,欢迎测试
#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
来自主题: JobHunting版 - 最郁闷的facebook面试+面经。
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
来自主题: JobHunting版 - 求G加一题的线性解法
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
来自主题: JobHunting版 - 求教rotate matrix扩展的解法
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
来自主题: JobHunting版 - 请问一道概率题,谢谢了先
#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
来自主题: JobHunting版 - 问一个C++ delete 节点的问题
可以在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
来自主题: JobHunting版 - 狗家面经
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
来自主题: JobHunting版 - fb电面面经
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
来自主题: JobHunting版 - fb电面面经
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
来自主题: JobHunting版 - c++ vs Java virtual 实现(Y家)
在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
来自主题: JobHunting版 - C++0x里的auto*做什么用的?
有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
来自主题: JobHunting版 - 一道rocket fuel的题
// 一个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
来自主题: JobHunting版 - LinkedIn 面试题讨论
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
来自主题: JobHunting版 - 请教一个c的概念题
写了个程序测了一些,没有发现你的说的问题,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
来自主题: JobHunting版 - airBnb电面面经
一上来就做题,没有废话。只做一题,但是要求直接编译运行出正确结果。
题目是给定一个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
来自主题: JobHunting版 - airBnb电面面经
一上来就做题,没有废话。只做一题,但是要求直接编译运行出正确结果。
题目是给定一个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
来自主题: JobHunting版 - c++疑难问题。。
我的理解,应该在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
来自主题: JobHunting版 - matrix question
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
来自主题: JobHunting版 - 非死不可电面出了新花样
面筋都是按行打印,今天让我按列打印。手忙脚乱了一阵。。用了个父节点做出来的。
电面只写了一道题是不是挂了。。
更新题目具体内容:
按列打印,
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
来自主题: JobHunting版 - Linkedin 电面 面经x2
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
来自主题: JobHunting版 - Linkedin 电面 面经x2
// * 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
来自主题: JobHunting版 - LinkedIn 电面
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
来自主题: JobHunting版 - 问个简单coding问题
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
来自主题: JobHunting版 - 一道FB的followup 问题
这应该是烙印的版本,给两个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
来自主题: JobHunting版 - 一道FB的followup 问题
这应该是烙印的版本,给两个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
来自主题: JobHunting版 - 再来问道面经题
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
来自主题: JobHunting版 - g面经来一个。
格式都坏了,凑合看吧
这是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
来自主题: JobHunting版 - 面facebook都得一提多解吗?
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
来自主题: Linux版 - 请教一个基础C++问题 (转载)
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
来自主题: Programming版 - new了指针,delete的时候出错了
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
来自主题: Programming版 - 一个极简单的程序求教
以前用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
来自主题: Programming版 - a simple question for C++ class
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
来自主题: Programming版 - which func will be called?
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
来自主题: Programming版 - operator() overloading 一问
我知道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
首页 上页 1 2 3 4 5 6 7 8 9 10 下页 末页 (共10页)