我正在某些C ++代码和此Makefile中使用C ++标准库:
CC=g++
CXXFLAGS=-Wall -Werror -ggdb3 -std=c++11 -pedantic $(OTHERFLAGS)
cpp_sort: cpp_sort.o
g++ -o $@ $(CXXFLAGS) $^
clean:
rm -rf *.o cpp_sort *~
源代码:
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
void get_input(vector<int>& items, int size) {
for (int i = 0; i < size; ++i) {
int element;
cin >> element;
items.push_back(element);
}
}
void cpp_sort(vector<int>& items) {
sort(items.begin(), items.end());
}
void print_array(vector<int>& items) {
for (auto& item : items) {
cout << item << ' ';
}
cout << endl;
}
int main() {
int size;
cin >> size;
vector<int> items;
items.reserve(size);
get_input(items, size);
cpp_sort(items);
print_array(items);
}
我这样叫make:
make OTHERFLAGS=-pg
运行程序(其中large.txt是一长串整数):
./cpp_sort <large.txt
并查看概要信息:
grof ./cpp_sort
这很好,它确实可以工作,但是我的函数调用被所有C ++标准库函数调用所遮盖。有没有办法排除标准库内部函数的调用?